急求c语言编程:从键盘输入一个整数,求它的位数,并打印出每一位上的数字。谢谢了,真心拜托了、、

如题所述

#include <stdio.h>
#include <malloc.h>

int main (void)
{
int a, b, c, h, i, t, l;//i是位数
char f;
do
{
i = 0;
printf("请输入一个数:");
scanf("%d", &a);
c = a;
for (;a != 0; i++)
{
b = a/10;
a = b;
}
int * p = (int *)malloc(i*sizeof(int));
for (h = 0;h < i;h++)
{
l = c%10;
if (l)
p[h]=l;
c /= 10;
}
printf("您输入的数的每位数分别为:\n");
for (h = i - 1; h>=0;h--)
{
printf("%5d",p[h]);
}

printf("\n");
printf ("您输入的数的位数:%d\n", i);
printf ("还想继续吗?是请输入字母 Y ,否则结束:");
scanf(" %c", &f);// %c前必须加空格
}
while (f == 'Y' || f == 'y');

return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-06-24
输入部分略,核心部分如下:
//////////程序//////////////
int n,WeiShu=0,ShuZi;
for(;ShuZi=n%10;WeiShu++,n-=ShuZi,n/=10)
{
printf("%d\n",ShuZi);
}
printf("共%d位。\n",WeiShu);
///////////完/////////////本回答被网友采纳
第2个回答  2012-06-24
#include "stdio.h"
main()
{
int n,i=0,r;
scanf(%d,&n);
for(r=n%10;r>0;i++)
{
print("%d",r);
r=n%10;
}
print("\n共%d位",i);
}