3 回答
TA贡献1876条经验 获得超6个赞
#include <iostream>
using namespace std;
int main()
{
int i = 1, s = 1, n;
cout << "输入n="; cin >> n;
while (n<1 || n>15){ //n的值若不在1-15范围内将不断循环输入
cout << "n的范围是1-15,请重新输入n的值\n输入n=";
cin.clear();
cin.sync();
cin >> n;
}
do
{
s = s*i;
i++;
} while (i <= n);
cout << "n!=" << s << endl;
return 0;
}
TA贡献1796条经验 获得超10个赞
这么改
cin>>n;
while(1)
{
if(n<1 || n>15)
{cout<<"n的值超出范围,请重新输入!"<<endl;
cout<<"输入n=";
cin>>n;}
else
break;
}
TA贡献1827条经验 获得超8个赞
#include <iostream>
using namespace std;
void main()
{
int num, reverse = 0, count = 0;
while (1)
{
cout<<"请输入一个不多于五位的正整数:";
cin>>num; // 输入数据
if (cin.bad() || num <= 0 || num >= 100000)
{
// 如果输入的不是整数,或者小于0,或者大于5位数,报错重试
cin.clear();
fflush(stdin);
cout<<"输入错误!请重试!"<<endl;
continue;
}
break;
}
// 逆序处理,同时算位数
while (num != 0)
{
int r = num % 10;
reverse = reverse * 10 + r;
num = num / 10;
count++;
}
cout<<"该数为"<<count<<"位数"<<endl;
cout<<"逆序数为"<<reverse<<endl;
}
添加回答
举报