| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 668 人关注过本帖
标题:程序纠错,大侠们帮忙
只看楼主 加入收藏
gf86691186
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2009-9-15
结帖率:0
收藏
已结贴  问题点数:20 回复次数:6 
程序纠错,大侠们帮忙
#include<stdio.h>
int main()
{
  int num,n=1;
  int i,j,m,w,t;
  int count=0;
  scanf("%d",&num);
  m=num;
t=num;
  while((m=m/10)!=0)
      n++;
    for(i=0;i<n;i++)
    {
        j=num%10;
        num=num/10;  
        count+=j;
        w=j+w*10;
    }
        printf("the reverse of  the %d is %d",t,w);
printf("\n");
        printf("the sum of the %d is %d",t,count);      
}
应该是输入任意整数,就能打印出它的逆序数和各位之和,上面的程序对4位以下的整数都能正常处理,但是4位以上就不对了,达人们帮帮忙吧!!!
搜索更多相关主题的帖子: 纠错 
2009-10-10 16:45
m456m654
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:783
专家分:2806
注 册:2009-9-17
收藏
得分:4 
将num t w count 改为long
#include<stdio.h>
int main()
{
  int i,j,n=1,count=0;
  long num,w=0,t,m;
  scanf("%ld",&num);
  m=num;
  t=num;
  while((m=m/10)!=0)
      n++;
    for(i=0;i<n;i++)
    {
        j=num%10;
        num=num/10;  
        count+=j;
        w=j+w*10;
    }
        printf("the reverse of  the %ld is %ld",t,w);
printf("\n");
        printf("the sum of the %ld is %d",t,count);      
}
主要是数据类型的范围的问题,int最大可以表示32767,long int 最大可以表示2^31-1;如果用float,就不能用%求余了。可以考虑用数组处理。

[ 本帖最后由 m456m654 于 2009-10-10 17:02 编辑 ]
收到的鲜花
  • gf866911862009-10-11 00:00 送鲜花  3朵  
2009-10-10 16:52
刘暮哲
Rank: 2
来 自:江苏
等 级:论坛游民
帖 子:75
专家分:83
注 册:2009-9-25
收藏
得分:4 
#include<stdio.h>  
void main()  
{  
 long  num,w=0;
  int n=1;  
  int i,j,m,t;  
  int count=0;  
  scanf("%d",&num);  
  m=num;
  t=num;
  while((m=m/10)!=0)  
      n++;  
    for(i=0;i<n;i++)  
    {  
        j=num%10;  
         
        count+=j;  
        w=j+w*10;  
        num=num/10;   
    }  
        printf("the reverse of  the %d is %d",t,w);
printf("\n");  
        printf("the sum of the %d is %d",t,count);        
}
这样就可以了 而且你的w应该先定义为0,要不然就指向不确定的值了,你的reverse值就不正确了
收到的鲜花
  • gf866911862009-10-11 00:01 送鲜花  2朵  

做最好的自己
2009-10-10 17:15
zhjr5201314
Rank: 4
等 级:业余侠客
帖 子:63
专家分:238
注 册:2009-9-10
收藏
得分:4 
同意3楼!
2009-10-10 17:38
ghjsmzy
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:187
专家分:573
注 册:2009-6-17
收藏
得分:4 
//数据拆分并倒叙存入数组
    i=0;
    k=10;
    while(i<7&&m>0){
        a[i]=m%k;
        m=m/10;
        i+=1;
    }
//将各个数据相加5
    m=0;
    for(j=0;j<i;j++)
        m=m+a[j];
2009-10-10 17:57
gf86691186
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2009-9-15
收藏
得分:0 
非常感谢各位的指点!
2009-10-11 00:00
GONES
Rank: 1
等 级:新手上路
帖 子:22
专家分:4
注 册:2007-6-18
收藏
得分:4 
注意变量的初始化!
2009-10-11 23:17
快速回复:程序纠错,大侠们帮忙
数据加载中...
 
   



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

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