C 在我验证了位数等于5之后,我想返回不变的n值
我想验证输入的数字是否有5位数,所以我使用while循环C 在我验证了位数等于5之后,我想返回不变的n值,c,while-loop,C,While Loop,我想验证输入的数字是否有5位数,所以我使用while循环 while(n>=10) { n = n/10; count++; } if(count != 5) return 0; 但是我的代码的下一部分使用的是更新的n值,我不希望这样。我怎么能对我的代码说“使用第一个n值”呢?以下是我的所有代码(当我删除配置部分时,它工作顺利): #包括 内部主(空) { 整数位数=0,n,计数=0; scanf(“%d”和“&n”); 而(n>=10) { n=n/10; 计数
while(n>=10)
{
n = n/10;
count++;
}
if(count != 5)
return 0;
但是我的代码的下一部分使用的是更新的n值,我不希望这样。我怎么能对我的代码说“使用第一个n值”呢?以下是我的所有代码(当我删除配置部分时,它工作顺利):
#包括
内部主(空)
{
整数位数=0,n,计数=0;
scanf(“%d”和“&n”);
而(n>=10)
{
n=n/10;
计数++;
}
如果(计数!=5)
返回0;
对于(int i=0;i使用不同的临时变量进行错误检查。
这样,原始变量将保持不变
int temp = n;
while(temp>=10)
{
temp = temp/10;
count++;
}
使用另一个变量,如int tempn=n;
请注意,循环未对位数进行计数;例如,如果将n
输入为5
,则count
永远不会递增,因此它保持为0。您可能应该将count
初始化为1
(或者切换到do
…而循环。您应该检查scanf()
是否也成功。另外,从main()返回零)
表示成功;当您的检查失败时,您可能不应该表示成功。您可能还应该用一条消息报告错误。并且您肯定应该以换行符结束打印。@JonathanLeffler在更大的项目中,我们称之为1/100可复制错误,直到测试人员识别出正确的输入以复制错误为止。它是htmare.Make一个函数,比如intDigitCount(intn){…}
@JonathanLeffler是的,当它不起作用时我才意识到:D谢谢你的提示。但是我怎么能说“如果这个循环进入,停止工作”