| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1232 人关注过本帖
标题:帮忙解释下这个程序里面用的强制类型转换
只看楼主 加入收藏
46067022
Rank: 1
来 自:湖南湘潭
等 级:新手上路
帖 子:26
专家分:0
注 册:2008-1-11
收藏
 问题点数:0 回复次数:11 
帮忙解释下这个程序里面用的强制类型转换
#include"stdio.h"/*功能是输入不大过五位数的数,分别写出各位数中间有空隔开*/
main()
{long int i;
int w,q,b,s,g,a;
printf("please input i:\n");
scanf("%ld",&i);
if(i>9999)/*判断是几位数*/
a=5;
else if(i>999)
a=4;
else if(a>99)
a=3;
else if(a>9)
   a=2;
else
   a=1;
   w=i/10000;/*求万位,千位,百位,十位,个位的每位数*/
   q=(int)(i-w*10000)/1000;/*帮忙看下这里的(int)如果没有这个强制转换运行的是错误码, 但"/"是整除符号,它运算后应该就是一个整数呀.应该不要用强制转换了,不懂呀*/
   b=(int)(i-w*10000-q*1000)/100;
   s=(int)(i-w*10000-q*1000-b*100)/10;
   g=(int)(i-w*10000-q*1000-b*100-s*10);
   switch(a)
   {case 5:printf("%d %d %d %d %d",w,q,b,s,g);break;
    case 4:printf("%d %d %d %d",q,b,s,g);break;
    case 3:printf("%d %d %d",b,s,g);break;
    case 2:printf("%d %d",s,g);break;
    case 1:printf("%d",g);break;
    }getch();
    }/*我用的WIN TC*/
搜索更多相关主题的帖子: 类型 解释 
2008-05-24 16:47
伤心的我
Rank: 1
等 级:新手上路
帖 子:82
专家分:0
注 册:2008-5-24
收藏
得分:0 
恩那。这个我不懂,我试运行了一下,确实如此,书上也没怎么说这个问题。等有心人来解答吧
2008-05-24 17:09
有悔
Rank: 1
等 级:新手上路
帖 子:16
专家分:5
注 册:2004-4-29
收藏
得分:0 
long 转换成 int 要丢位的
2008-05-24 20:07
伤心的我
Rank: 1
等 级:新手上路
帖 子:82
专家分:0
注 册:2008-5-24
收藏
得分:0 
楼上的能不能解释得详细点
2008-05-24 21:16
xxkai16826
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2008-5-24
收藏
得分:0 
程序,貌似有点问题吧
2008-05-24 21:38
伤心的我
Rank: 1
等 级:新手上路
帖 子:82
专家分:0
注 册:2008-5-24
收藏
得分:0 
程序没问题,在WIN-TC下运行正常
2008-05-24 21:55
zhuwei168
Rank: 1
来 自:东软信息学院
等 级:新手上路
帖 子:180
专家分:0
注 册:2008-2-13
收藏
得分:0 
回复 4# 伤心的我 的帖子
3楼的意思就是long的范围更大
int范围小
范围大的变成小的
要省略一部分的

做一个自由的人,飞到蔚蓝的天空里。
2008-05-25 12:53
miaohg
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2008-5-25
收藏
得分:0 
我认为:w是int 的,而计算w*10000在整数范围将溢出,所以导致下面的计算出错!

请指教我说的对吗?
2008-05-25 13:45
伤心的我
Rank: 1
等 级:新手上路
帖 子:82
专家分:0
注 册:2008-5-24
收藏
得分:0 
楼上得应该正解。我好像懂了,谢谢。
2008-05-25 14:00
伤心的我
Rank: 1
等 级:新手上路
帖 子:82
专家分:0
注 册:2008-5-24
收藏
得分:0 
也就是长整型与整型运算值是长整型,而每位数都只个位不会超个数值十的,所以要把长整转普通整型,但有个问题没试过,同样一个不超过普整型取值范围的数,用长整和普整除字节数不同,在显视器上显示出来会不同吗?
2008-05-25 14:07
快速回复:帮忙解释下这个程序里面用的强制类型转换
数据加载中...
 
   



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

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