C语言程序设计 6

来源:百度知道 编辑:UC知道 时间:2024/04/30 01:36:38
输入一个不多于4位的正整数,要求如下:
(1)求出它是几位数;
(2)输出每一位数;
楼下的程序
经 调试
不成功

回答者:风带领的孤鸟 - 见习魔法师 二级 6-30 16:40

while(n != 0)
{
sum++;
m = n % 10;
n = n/10;
printf("第%d位:%d\n", sum, m);

}

printf("这是一个%d位数\n",sum);
return 0;
}

这部分,我看懂了的

while (n<=0 || n>=10000)

但这个语句是什么意思?
我没搞懂
其用意是什么?

#include <stdio.h>
int main()
{
int m=0,n=0,sum=0;
while (n<=0 || n>=10000)
{
printf ("请输入一个正整数:");
scanf ("%d",&n);
}

while(n != 0)
{
sum++;
m = n % 10;
n = n/10;
printf("第%d位:%d\n", sum, m);

}

printf("这是一个%d位数\n",sum);
return 0;
}

其实楼上的程序想法很正确,只是一些细节处理不对而已.
还有,楼上scanf ("%d",n); 这句话的错误是不应该犯的,在接受输入的时候应该对整型数n取地址的。

还有,楼上的估计是位C++程序员把?你用的注释明显是C++风格的。所以楼主才会编译不通过,因为大多数的单纯C的编译器是不识别这种注释的。

while (n<=0 || n>=10000) 这个循环体是用来处理输入的,确保输入的n的值是在0到1000之间,就是题目要求的不多于4位的正整数

#include <stdio.h>
void main()
{
int m=0,n=0,sum=1;
while (n<=0 || n>=10000)
{
printf ("输入一个正整数:");
scanf ("%d",n);
}
m=n%10;
printf ("%d\n",n); //从个位开始输出每一位数
n=n/10;
wh