C语言的一道题,从键盘上输入一个正整数,求他的位数,并打印出每一位的值

这个怎么编啊,帮帮忙

有两种方法 一种是楼上的算法 用除10取整得到每一位的值 不过这里改一下void main(){int n;scanf("%d",&n);while(n>0){printf("%d\t",n);n=n/10;}} 另一种方法比较取巧,直接把输入的存储空间定义为字符类型,然后直接输出就行了int i=0;char s[20];scanf("%s",s);while(!eof){printf("%c\t",s[i]);i++;}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-05
#include <stdio.h>int main()
{
int num;
int n=0,i=0;
printf("plise input a num\n");
scanf("%d",&num);
i=num;
while(i>=1)
{
i=i/10;
n++;
}
for(i=n;i>0;i--)
{
printf("%d ",num%10);
num=num/10;
}
printf("\n%d\n",n);

return 0;
}本回答被网友采纳
第2个回答  2013-11-05
int i=1;int n;scanf("%d",&n);while(n>0){n=n/10; i++;}
第3个回答  2013-11-05
#include<stdio.h>
#include<stdlib.h>main()
{
int i=0;
int j=0;
int n=0;
int mod=1;
int temp=0;
int num=0;
printf("Input Num");
scanf("%d",&n);
temp=n;while(n>0)
{
n=n/10;
i++;
mod=mod*10;
}
mod=mod/10;
printf("The Input Num Length=%d\n",i);for(j=1;j<=i;j++)
{
num=temp/mod;
temp=temp%mod;
mod=mod/10;
printf("Num Positon =%d,Num Value=%d\n",j,num);}}
相似回答