我是一名编码初学者,希望听到您对本练习的以下解决方案的建议:
编写一个循环提示数据类型为long或零整数的程序。然后应该将整数组成的位数(以十进制表示)打印到stdout。输入负数会立即停止该程序。 输出示例: 0有1位数。 999有3位数。等
我已经编写了下面的代码,根据我的测试,该程序完成了所有给定的任务。但你怎么看呢?我怎样才能改进它?
(而且我也认为我不允许在任何c库中使用任何已完成的有用功能。它只是简单的C编码左右.Idk如何描述它。)
(编程语言为C)
#include <stdio.h>
int main(void)
{
long number;
int n=0;
do
{
printf("Enter a number: ");
scanf_s("%ld", &number);
if (number > 0)
{
while (number != 0)
{
number /= 10;
n++;
}
}
else if(number == 0){
n = 1;
}
else {
exit();
}
printf("The number you've entered has %d digits.\n\n",n);
n = 0;
} while (getchar() != 'EOF');
return 0;
}
答案 0 :(得分:0)
这个getchar没用,因为EOF就是说文件已经结束而你没有读取文件。将其更改为while(number&gt; = 0)。