注册 登录
编程论坛 C++教室

这么让程序在输入错误后,可以重新输入。

小林111 发布于 2015-08-18 11:47, 827 次点击
假如我输入的是7位数,那如何让我重新输入而程序不报错(VS2010)


#include <iostream>
#include <string>
 using namespace std;
 int main()
{
long s,b,c,d,e,a;
cout<<"请输入一个不多于五位数的正整数"<<endl;
cin >> s;
if(s<=0||s>99999)
    cout<<"输入数值有误,程序结束。"<<endl;
   
else
    a=s/10000;
    b=(s%10000)/1000;
    c=(s%1000)/100;
    d=(s%100)/10;
    e=s%10;
    if(a!=0)
        cout<<"您输入的数的逆序数是:"<<e<<d<<c<<b<<a<< endl;

    else if(b!=0)
        cout<<"您输入的数的逆序数是:"<<e<<d<<c<<b<< endl;
    else if(c!=0)
        cout<<"您输入的数的逆序数是:"<<e<<d<<c<<endl;
    else if(d!=0)
        cout<<"您输入的数的逆序数是:"<<e<<d<<endl;
    else
        cout<<"您输入的数的逆序数是:"<<e<<endl;
    system("pause");
    return 0;

}
2 回复
#2
rjsp2015-08-18 12:38
程序代码:
#include <iostream>
#include <limits>
using namespace std;

int main( void )
{
    unsigned n;
    for( ; cout<<"请输入一个不多于五位数的正整数:", cin>>n, !cin || n==0 || n>99999; )
    {
        cin.clear();
        cin.ignore( std::numeric_limits<streamsize>::max(), '\n' );
    }

    cout << "您输入的数的逆序数是: ";
    for( ; n; n/=10 )
        cout << n%10;
    cout << endl;

    return 0;
}
#3
小林1112015-08-18 14:41
回复 2楼 rjsp
谢谢啊!多谢指导。
1