| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1030 人关注过本帖
标题:[原创]如果分别打印一个数各位的数学?
只看楼主 加入收藏
编程真难学啊
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-8-9
收藏
 问题点数:0 回复次数:17 
[原创]如果分别打印一个数各位的数学?
本人自学C语言,用的谭大叔的教材
第5章后面有几个小问题,想了半天没有思路,希望高人指点,
1.给一个不多于5位的正整数,分别打印出每一位的数位,
2.按逆序打印出各位数学,如原数为123.输出是321.
我不知道这要怎么样去思索,指点一下就行,不劳您把代码写出来!
搜索更多相关主题的帖子: 数学 打印 
2006-08-09 22:23
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

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


倚天照海花无数,流水高山心自知。
2006-08-09 22:27
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

#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);
}


倚天照海花无数,流水高山心自知。
2006-08-09 22:27
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
收藏
得分:0 
shuo zhe xie mei yong, da jia dou shi zi xue.

日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-08-09 22:28
大水牛
Rank: 1
等 级:新手上路
威 望:1
帖 子:233
专家分:0
注 册:2005-11-21
收藏
得分:0 
其实这个的话你可以这么考虑
数按权值展开的话10进制应该是
ABCDE(表示一个数)=A*10的4次+B*10的3次+C*10的2次+D*10的一次+E*10的0次
你按照这个思路去设计吧
这个比较好理解

虽然现在的我什么都不明白,但总有一天,我将包容一切,让优秀变成一种习惯。。。。。。。。。。。。
2006-08-09 22:29
龙芯
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-3-12
收藏
得分: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-08-09 23:04
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
以下是引用龙芯在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位的


倚天照海花无数,流水高山心自知。
2006-08-09 23:25
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 
以下是引用nuciewth在2006-8-9 23:25:04的发言:

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

再仔细看看


[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-08-09 23:30
zhangjuan
Rank: 1
等 级:新手上路
帖 子:992
专家分:0
注 册:2006-1-19
收藏
得分:0 

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


2006-08-09 23:58
神经塔
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:1987
专家分:4
注 册:2006-7-1
收藏
得分:0 

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


[shadow=255,red,2]待到秋来九月八,我花开时百花杀。冲天香阵透长安,满城尽是黄金甲。 [/shadow]
2006-08-10 01:04
快速回复:[原创]如果分别打印一个数各位的数学?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.047672 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved