当前位置: 代码迷 >> C语言 >> [求助]请教这个程序该怎么编写啊!
  详细解决方案

[求助]请教这个程序该怎么编写啊!

热度:343   发布时间:2004-10-09 22:30:00.0
[求助]请教这个程序该怎么编写啊!

我是新手,不知道这个程序该怎么写!大家帮帮忙啊!谢谢啦!

题目是 : 给一个不多于5位数的正整数,要求:(1)求出他是几位数(2)分别打印出每一位数字(3)按逆序打印出各位数字,例如原数为321,则应输出为123

搜索更多相关的解决方案: 数字  编写  位数  

----------------解决方案--------------------------------------------------------
谁帮帮我啊!
----------------解决方案--------------------------------------------------------

#include "math.h" main() { int num,i,aa[4]; int cnt=0,fanxushu=0,x; printf("请输入一个整数,num="); scanf("%d",&num); while(num) /* 求每一个位数 */ { aa[cnt++]=num%10; num=num/10; } for(i=0;i<cnt;i++) { x=pow(10,cnt-i-1); fanxushu+=x*aa[i]; } printf("\n这是一个%d位数\n",cnt); printf("依次打印每一位数字为:"); for(i=cnt-1;i>=0;i--) printf("%4d",aa[i]); printf("\n反向打印每一位数字为:"); for(i=0;i<cnt;i++) printf("%4d",aa[i]); printf("\n这个数的反序数为:%d",fanxushu); getch();

}


----------------解决方案--------------------------------------------------------
以下是引用风花雪月在2004-10-12 09:09:06的发言:

#include "math.h" main() { int num,i,aa[4]; int cnt=0,fanxushu=0,x; printf("请输入一个整数,num="); scanf("%d",&num); while(num) /* 求每一个位数 */ { aa[cnt++]=num%10; num=num/10; } for(i=0;i<cnt;i++) { x=pow(10,cnt-i-1); fanxushu+=x*aa[i]; } printf("\n这是一个%d位数\n",cnt); printf("依次打印每一位数字为:"); for(i=cnt-1;i>=0;i--) printf("%4d",aa[i]); printf("\n反向打印每一位数字为:"); for(i=0;i<cnt;i++) printf("%4d",aa[i]); printf("\n这个数的反序数为:%d",fanxushu); getch();

}

有点小问题,题目说是不多于5位的整数,那就是可能是5位的。int num;num<=32767,所以要改成long num;scanf("%ld",&num); aa[4]也要改成aa[5]


----------------解决方案--------------------------------------------------------

啊!!!

这个我倒还真的没有考虑到啊 !


----------------解决方案--------------------------------------------------------

真的谢谢啊!~~!怎么有错误啊`!!!int cnt=0,fanxushu=0,x;

[此贴子已经被作者于2004-10-12 15:49:56编辑过]


----------------解决方案--------------------------------------------------------

不是说了改为long型吗??

当然也要改拉!!!


----------------解决方案--------------------------------------------------------

改好的了!!!晕~~~~~~~~~连这个也要我改!!

#include "math.h" main() { long num,i,aa[5]; int cnt=0,x; long fanxushu=0; printf("请输入一个整数,num="); scanf("%ld",&num); while(num) /* 求每一个位数 */ { aa[cnt++]=num%10; num=num/10; } for(i=0;i<cnt;i++) { x=pow(10,cnt-i-1); fanxushu+=x*aa[i]; } printf("\n这是一个%d位数\n",cnt); printf("依次打印每一位数字为:"); for(i=cnt-1;i>=0;i--) printf("%4ld",aa[i]); printf("\n反向打印每一位数字为:"); for(i=0;i<cnt;i++) printf("%4ld",aa[i]); printf("\n这个数的反序数为:%ld",fanxushu); getch();

}


----------------解决方案--------------------------------------------------------

太感谢了啊! 我改了的 ,没改对 呵呵 真不好意思啊1


----------------解决方案--------------------------------------------------------
啊! 甘懒的人点得的啊!   连一小点都不自己改啊呀  人地都已经话左改哪啦甘都不会改! 晕!
----------------解决方案--------------------------------------------------------
  相关解决方案