Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 在我验证了位数等于5之后,我想返回不变的n值_C_While Loop - Fatal编程技术网

C 在我验证了位数等于5之后,我想返回不变的n值

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; 计数

我想验证输入的数字是否有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;
计数++;
}
如果(计数!=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谢谢你的提示。但是我怎么能说“如果这个循环进入,停止工作”