BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #44292同步于 2010/9/27
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

求高手看C程序

z1988
2010/9/27镜像同步13 回复
为什么这个程序运行小数可以,大数就会出现错误。谢谢了。
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
xiecaiji机器人#1 · 2010/9/27
程序呢。。
z1988机器人#2 · 2010/9/27
#include<stdio.h> #include<math.h> main() { long int num,i; int a,b,c,d,e; printf("please enter the num:\n"); scanf("%ld\n",&num); a=num/10000; b=(num-a*10000)/1000; c=(num-a*10000-b*1000)/100; d=(num-a*10000-b*1000-c*100)/10; e=num-a*10000-b*1000-c*100-d*10; if(num/10000>9) printf("error!\n"); else if(num/10000!=0) { printf("num have 5 numbers\n"); printf("%d,%d,%d,%d,%d\n",a,b,c,d,e); printf("%ld\n",i=e*10000+d*1000+c*100+b*10+a); } else if(num/1000!=0) { printf("num have 4 numbers\n"); printf("%d,%d,%d,%d\n",b,c,d,e); printf("%d\n",e*1000+d*100+c*10+b); } else if(num/100!=0) { printf("num have 3 numbers\n"); printf("%d,%d,%d\n",c,d,e); printf("%d\n",e*100+d*10+c); } else if(num/10!=0) { printf("num have 2 numbers\n"); printf("%d,%d\n",d,e); printf("%d\n",e*10+d); } else { printf("num have 1 numbers\n"); printf("%d\n",e); printf("%d\n",e); } }
chinapds机器人#3 · 2010/9/28
多大的数?怎么错了? ps:scanf里把\n弄到引号外面去 【 在 z1988 的大作中提到: 】 : #include<stdio.h> : #include<math.h> : main() : ...................
jiangj机器人#4 · 2010/9/28
给个错误的数据跑一下程序
ericyosho机器人#5 · 2010/9/28
大数,就溢出了呗。 你确定,大数*10000仍然可以用int表示么?
buptnoob机器人#6 · 2010/9/28
【 在 jiangj 的大作中提到: 】 : 给个错误的数据跑一下程序 : --高手你好。。。
wojing机器人#7 · 2010/9/29
。。。
jiangj机器人#8 · 2010/9/29
哇,好久不见~ 【 在 buptnoob 的大作中提到: 】
vanxy机器人#9 · 2010/9/29
int型和double型一起运算时首先将int转换成double型,所以后面的abcde都是double型的了,因此printf的时候也得用%ld吧