Sign-up....

有点错误!!!

#include<stdio.h>

main()

{ long num;

int indiv,ten,hundred,thousand,ten_thousand;

int hundred_thousand ,million,ten_million,hundred_million,billion,sum;

printf("please input a positive integral:\n");

scanf("%ld",&num);

billion=num/1000000000;

hundred_million=(int)(num-billion*1000000000)/100000000;

ten_million=(int)(num-billion*1000000000-hundred_million*100000000)/10000000;

million=(int)(num-billion*1000000000-hundred_million*100000000-ten_million*10000000)/1000000;

hundred_thousand=(int)(num-billion*1000000000-hundred_million*100000000-ten_million*10000000-million*1000000)/100000;

ten_thousand=(int)(num-billion*1000000000-hundred_million*100000000-ten_million*10000000-million*1000000-hundred_thousand*100000)/10000;

thousand=(int)(num-billion*1000000000-hundred_million*100000000-ten_million*10000000-million*1000000-hundred_thousand*100000-ten_thousand*10000)/1000;

hundred=(int)(num-billion*1000000000-hundred_million*100000000-ten_million*10000000-million*1000000-hundred_thousand*100000-ten_thousand*10000-thousand*1000)/100;

ten=(int)(num-billion*1000000000-hundred_million*100000000-ten_million*10000000-million*1000000-hundred_thousand*100000-ten_thousand*10000-thousand*1000-hundred*100)/10;

indiv=(int)(num-billion*1000000000-hundred_million*100000000-ten_million*10000000-million*1000000-hundred_thousand*100000-ten_thousand*10000-thousand*1000-hundred*100-ten*10);

sum=(indiv+ten+hundred+thousand+ten_thousand+hundred_thousand+million+ten_million+hundred_million+billion);

printf("the sum is=%d",sum);

}

输入一个正整数,然后使其各位值相加。如输入:2345。就要输出:sum=2+3+4+5=14

[1575 byte] By [msdn] at [2007-11-19 9:53:15]
# 1 Re: 有点错误!!!

我倒~~~-_-

foochow at 2005-6-11 9:14:59 >
# 2 Re: 有点错误!!!

晕死~~~-_-

andy_bin at 2005-6-11 9:48:18 >
# 3 Re: 有点错误!!!

我狂倒,楼主还真幽默!

ewayne at 2005-6-11 9:49:12 >
# 4 Re: 有点错误!!!

用这个麻烦啊?

sunman1982 at 2005-6-11 10:49:51 >
# 5 Re: 有点错误!!!

楼主幽默。。。格式不好。。没注释。。不想看。。晕。。

mccxj at 2005-6-11 11:35:10 >
# 6 Re: 有点错误!!!

如果你是想要这样的结果

"输入一个正整数,然后使其各位值相加。如输入:2345。就要输出:sum=2+3+4+5=14"

个人觉得你还是重新写一个,用"数组"会比较好点(或是用 数组+指针).

Asfpu at 2005-6-11 11:43:33 >
# 7 Re: 有点错误!!!

大家帮忙改改嘛,虽然方法笨了点,但是对我来说还是有帮助的啊。

不要取笑我了,帮忙改一下了。

我相信每个人都是这么过来的。

xinteng at 2005-6-11 14:06:37 >
# 8 Re: 有点错误!!!

重新写一下吧

比如输一个正整数,先判断他是几位数,再处理,利用数组

将其各位处理后的数据进行保存...

这个程序十分简单,自己优化一下,这样对你有好处

dengyiwolf at 2005-6-11 16:15:32 >
# 9 Re: 有点错误!!!

虽然大家都是这样过来的,但现在要看这么长的,可能大家都不太愿意了。呵呵。。

mostideal at 2005-6-11 16:16:46 >
# 10 Re: 有点错误!!!

发现问题了,以上程序对小数运算正确,但对较大的数就会出错,如:9876543210

这是因为该数位数超过long型的了,建议改成用数组表示

5420 at 2005-6-11 17:14:34 >
# 11 Re: 有点错误!!!

对小数运算正确,超过5位就错了。

也不是超过数字表示范围啊,对long型来说,有效位数应该是10位啊,大家说对不对啊???

xinteng at 2005-6-11 17:31:09 >
# 12 Re: 有点错误!!!

在6位就有点不对 ,你用用switch来控制一下.程序会偏大,难以控制.还是用数组比较好

Asfpu at 2005-6-11 18:42:59 >

C/C++

All Classified