| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 420 人关注过本帖
标题:请教个简单的问题,有点不明白。
取消只看楼主 加入收藏
mxj987
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2009-7-14
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:0 
请教个简单的问题,有点不明白。
我是新手 自己编了个小程序,有点问题请教
给一个不多于5位的正整数,要求:1,求出它是几位数。2,分别打印出每一位数字。3,按逆序打印个位数字。
我是这样编写的:
main()
{
 int ge,shi,bai,qian,wan,place;
 long num;
 scanf("%ld",&num);
 if (num<=9999)
  {if (num<=999)
   {if (num<=99)
    {if (num<=9)
     place=1;
    else place=2;}
   else place=3;}
  else place=4;}
 else place=5;
 wan=(int)(num/10000);
 qian=(int)((num-wan*10000)/1000);
 bai=(int)((num-wan*10000-qian*1000)/100);
 shi=(int)((num-wan*10000-qian*1000-bai*100)/10);
 ge=(int)(num-wan*10000-qian*1000-bai*100-shi*10);
 printf("%d\n",place);
 printf("%ld\n",num);
 printf("%d%d%d%d%d\n",ge,shi,bai,qian,wan);
}
这个是错误的,当5位数大于32767时打印结果就不对打印出很多的数字。后来让我改成:
main()
{
 int ge,shi,bai,qian,wan,place;
 long num;
 scanf("%ld",&num);
 if (num<=9999)
  {if (num<=999)
   {if (num<=99)
    {if (num<=9)
     place=1;
    else place=2;}
   else place=3;}
  else place=4;}
 else place=5;
 wan=(int)(num/10000);
 qian=(int)(num-wan*10000)/1000;
 bai=(int)(num-wan*10000-qian*1000)/100;
 shi=(int)(num-wan*10000-qian*1000-bai*100)/10;
 ge=(int)(num-wan*10000-qian*1000-bai*100-shi*10);
 printf("%d\n",place);
 printf("%ld\n",num);
 printf("%d%d%d%d%d\n",ge,shi,bai,qian,wan);
}
这样就对了。但是我不知道为什么不对?
 wan=(int)(num/10000);
 qian=(int)((num-wan*10000)/1000);
 bai=(int)((num-wan*10000-qian*1000)/100);
 shi=(int)((num-wan*10000-qian*1000-bai*100)/10);
 ge=(int)(num-wan*10000-qian*1000-bai*100-shi*10);

wan=(int)(num/10000);
 qian=(int)(num-wan*10000)/1000;
 bai=(int)(num-wan*10000-qian*1000)/100;
 shi=(int)(num-wan*10000-qian*1000-bai*100)/10;
 ge=(int)(num-wan*10000-qian*1000-bai*100-shi*10);
效果不是一样的吗
还有个问题:(int)(num-wan*10000)/1000; 假如wan*10000超过了32767,wan是int型,这个结果是怎么转换的
谢谢各位啦 小弟有点笨想学习学习 帮个忙吧
2009-07-25 08:37
快速回复:请教个简单的问题,有点不明白。
数据加载中...
 
   



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

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