| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3027 人关注过本帖
标题:[求助]潭浩强书上的题目百思不得其解啊
取消只看楼主 加入收藏
sunhangdick
Rank: 1
等 级:新手上路
帖 子:52
专家分:0
注 册:2007-7-19
收藏
 问题点数:0 回复次数:13 
[求助]潭浩强书上的题目百思不得其解啊

给一个不多于5位的正整数,要求:1)求出它是几位数 2)分别输出每一位 3)按逆序输出各位

#include<stdio.h>
main()
{
long int number;
int indiv,ten,hunderd,thousand,tenthousand,place;
printf("Please enter a number:\n");
printf("Please enter a number(0~99999):");
scanf("%ld",&number);
if(number>9999)
place=5;
else
if(number>999)
place=4;
else
if(number>99)
place=3;
else
if(number>9)
place=2;
else
if(number>=0)
place=1;
tenthousand=number/10000;
thousand=(int)(number-tenthousand*10000)/1000;
hunderd=(int)(number-tenthousand*10000-thousand*1000)/100;
ten=(int)(number-tenthousand*10000-thousand*1000-hunderd*100)/10;
indiv=number-tenthousand*10000-thousand*1000-hunderd*100-ten*10;
printf("Every palce is\n:");
switch(place)
{
case 5 : printf("%d %d %d %d %d\n",tenthousand,thousand,hunderd,ten,indiv);
printf("The opposite palce is\n:%d %d %d %d %d\n",indiv,ten,hunderd,thousand,tenthousand);
break;

case 4 : printf("%d %d %d %d\n",thousand,hunderd,ten,indiv);
printf("The opposite palce is\n:%d %d %d %d\n",indiv,ten,hunderd,thousand);
break;

case 3 : printf("%d %d %d\n",hunderd,ten,indiv);
printf("The opposite palce is\n:%d %d %d\n",indiv,ten,hunderd);
break;

case 2 : printf("%d %d\n",ten,indiv);
printf("The opposite palce is\n:%d %d\n",indiv,ten);
break;

case 1 : printf("%d",indiv);
printf("The opposite palce is\n:%d\n",indiv);
break;
default : printf("error");
}
getch();

}
输入数字:98765 是正确的,输出:
9 8 7 6 5
5 6 7 8 9
如果把红字的(int)强制转换符去掉结果就出现:
9 74 658 6557 3
3 6557 658 74 9
我要说的是"/"是取整数部分怎么会出现这样的情况,请大家帮帮忙~谢谢~

搜索更多相关主题的帖子: 潭浩强 number 百思不得其解 place 
2007-07-23 02:27
sunhangdick
Rank: 1
等 级:新手上路
帖 子:52
专家分:0
注 册:2007-7-19
收藏
得分:0 
2楼的,首先谢谢你的建议~我一开始考虑过取模运算然后数组正序和逆序输出,但是这样更麻烦,因为题目的给出的是 一个不多于5位的正整数,如果用数组+取模的方法的话每一个Case都要用到一个For循环和数组的正序和逆序的输出相比之下哪一个更麻烦呢?当然如果确定是5位的话你说的方法是要简便许多~这是我的观点,在这还是要谢谢你~
2007-07-23 07:01
sunhangdick
Rank: 1
等 级:新手上路
帖 子:52
专家分:0
注 册:2007-7-19
收藏
得分:0 
我还是要请教一下大家为什么为什么int强制转换符去掉后结果不正确?
2007-07-23 07:03
sunhangdick
Rank: 1
等 级:新手上路
帖 子:52
专家分:0
注 册:2007-7-19
收藏
得分:0 
好吧~我看看~谢谢啦`我学习C才半年,所以还要请你多多指教啊~
2007-07-23 07:10
sunhangdick
Rank: 1
等 级:新手上路
帖 子:52
专家分:0
注 册:2007-7-19
收藏
得分:0 
优先级问题?我不懂列,希望你能说明白点好吗?谢谢~
2007-07-23 07:11
sunhangdick
Rank: 1
等 级:新手上路
帖 子:52
专家分:0
注 册:2007-7-19
收藏
得分:0 
呵呵~这个…我们先不说这个程序的长度问题啦,你帮我解释一下那个为什么非要INT类型强制转换符,我是真的想了好就也不知道为什么啊~真的谢谢你啦~帮帮忙啦~
2007-07-23 07:16
sunhangdick
Rank: 1
等 级:新手上路
帖 子:52
专家分:0
注 册:2007-7-19
收藏
得分:0 
我用的是win-tc
2007-07-23 07:47
sunhangdick
Rank: 1
等 级:新手上路
帖 子:52
专家分:0
注 册:2007-7-19
收藏
得分:0 

这么说的那程序不加上Int强制转换符也是对的?咳~害我昨天调试和思考了1天到昨天晚上3点才睡觉~嘿嘿~谢谢你啦~

2007-07-23 07:49
sunhangdick
Rank: 1
等 级:新手上路
帖 子:52
专家分:0
注 册:2007-7-19
收藏
得分:0 
啊~太谢谢你了,我刚才在VC上调试也是对的,我真笨~没有想到用别的编译工具.实在太谢谢你啦~
2007-07-23 08:00
sunhangdick
Rank: 1
等 级:新手上路
帖 子:52
专家分:0
注 册:2007-7-19
收藏
得分:0 

我一般用的Win-tc 后来用VC6.0试了试,你说的是对的~

2007-07-23 13:59
快速回复:[求助]潭浩强书上的题目百思不得其解啊
数据加载中...
 
   



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

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