我最近开始学习C ++,到目前为止我开始学习 无论如何我想要的数据验证 如果用户输入,该程序将拒绝整数 所述整数包含1或0,例如1234,0222 所以我想到了它并提出了下面的代码。 但是我现在在这个特定的行中面临一个问题
while(temp> 0)
如果我拒绝任何其他数字说2,3,4会有用 但既然我想拒绝0,那就变得不合逻辑了。 我应该如何更改条件以便0拒绝并要求用户再次输入?
编辑:我设法在整数中间拒绝0或1,例如234152,234013
但是,如果用户输入0234
,我无法拒绝#include <iostream>
using namespace std;
int main ()
{
int n, temp, temp2 ,counter;
bool check = false;
counter = 0;
do
{
check = false;
cout << "Enter a positive integer: ";
cin >> n;
temp = n;
temp2= n;
while (!check && n > 0 )
{
if( n % 10 ==1 || n % 10 == 0)
{
check = true;
}
else
n = n/ 10;
}
}
while(check == true || n < 0);
答案 0 :(得分:1)
我不认为这是做你想做的事情的最佳方式。话虽如此,这是解决问题的快捷方法。在while循环之后添加一个if语句。
if(temp==0)
分别处理零案例。
答案 1 :(得分:1)
1)将while (temp %10 == 1 || temp % 10 == 0)
更改为if (temp %10 == 1 || temp % 10 == 0)
2)check
do while
循环中不得为1,或将其类型更改为bool
。
这是代码:
int main()
{
int n, temp;
bool check = false;
do
{
cout << "Enter a positive integer: ";
cin >> n;
temp = n;
check = false;
while (temp >= 0) // changed here
{
if (temp % 10 == 1 || temp % 10 == 0)
{
check = true;
break;
}
temp = temp / 10;
}
}
while (check);
return 0;
}