当前位置: 代码迷 >> C语言 >> [原创]如果分别打印一个数各位的数学?
  详细解决方案

[原创]如果分别打印一个数各位的数学?

热度:153   发布时间:2006-08-09 22:23:36.0
[原创]如果分别打印一个数各位的数学?
本人自学C语言,用的谭大叔的教材
第5章后面有几个小问题,想了半天没有思路,希望高人指点,
1.给一个不多于5位的正整数,分别打印出每一位的数位,
2.按逆序打印出各位数学,如原数为123.输出是321.
我不知道这要怎么样去思索,指点一下就行,不劳您把代码写出来!
搜索更多相关的解决方案: 数学  打印  

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

先用求余法求得数的位数.以后就根据位数做循环分别求出各位数.


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

#include<stdio.h>

int main()
{
long num,t;
int count=0;
printf("输入一个不多于5位数的正整数:");
scanf("%ld",&num);
t=num;
while(t)
{
count++;
t=t/10;
}
printf("该数是个%d位数\n",count);
t=num;
while(t)
{
switch(count)
{
case 5:printf("该数的万位是%d\n",t/10000);t=t%10000;break;
case 4:printf("该数的千位是%d\n",t/1000);t=t%1000;break;
case 3:printf("该数的百位是%d\n",t/100);t=t%100;break;
case 2:printf("该数的十位是%d\n",t/10);t=t%10;break;
case 1:printf("该数的个位是%d\n",t);t=0;break;
}
count--;
}
printf("该数的回文数为:");
t=num;
while(t)
{
printf("%d",t%10);
t=t/10;
}
printf("\n");
return(0);
}


----------------解决方案--------------------------------------------------------
shuo zhe xie mei yong, da jia dou shi zi xue.

----------------解决方案--------------------------------------------------------
其实这个的话你可以这么考虑
数按权值展开的话10进制应该是
ABCDE(表示一个数)=A*10的4次+B*10的3次+C*10的2次+D*10的一次+E*10的0次
你按照这个思路去设计吧
这个比较好理解

----------------解决方案--------------------------------------------------------
#include<stdio.h>
#include<stdlib.h>

int main()
{
int i,digit=0;
printf("输入5位数:\n");
scanf("%d",&i);
while(i!=0)
{
digit=i%10;
i=i/10;
printf("%5d",digit);
}
system("PAUSE");
}
----------------解决方案--------------------------------------------------------
以下是引用龙芯在2006-8-9 23:04:49的发言:
#include<stdio.h>
#include<stdlib.h>

int main()
{
int i,digit=0;
printf("输入5位数:\n");
scanf("%d",&i);
while(i!=0)
{
digit=i%10;
i=i/10;
printf("%5d",digit);
}
system("PAUSE");
}

楼主说这个数是不多于5位的,而不是说就是5位的


----------------解决方案--------------------------------------------------------
以下是引用nuciewth在2006-8-9 23:25:04的发言:

楼主说这个数是不多于5位的,而不是说就是5位的

再仔细看看


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

我觉得楼主这个问题,可能把整型转换成字符型,存储到字符数组里,然后再逆序输出


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

楼主如果基本功扎实,应该不是很难的!希望楼主继续努力啊


----------------解决方案--------------------------------------------------------
  相关解决方案