C语言求1到10的阶乘的和

我是新手啊,希望大家能理解我,
#include<stdio.h>
main()
{int a=0,b=1,c,d;
while(b<=10)
{c=b;
for(d=1;c>0;c--)
d=c*d;
a=a+d;
b++;
}
printf("%d %d %d %d",a,b,c,d) ;
getch();
}
这个是我编的,但是结果很有点问题,谁能帮帮我啊!我不要现成的答案,那些东西看不懂,我只想在我的基础上改改,有耐心的改改吧!
1楼的……我知道为什么错了,你也是错的,那个INT的位数不够,应该用LONG才行,呵呵
郁闷啊,楼下那么多人都没看到我的补充么……我这个程序是对的啊,就是麻烦了点,我是新手嘛·……只是把INT改成LONG就好啦~呵呵,

你试试把for后的两句放在for语句中 因为你的程序当c大于2时 d始终只能得一次值 而不会累加 而且你把应a d定义为长整型 我自己写的中间的你试试 for(i=0;i<11;i ) for(j=i;j>0;j ) s*=j; sum =s;其中s sum都是长整型 用手机上回的 简单写了下 希望能看懂 还有你c能语言
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-01
#include<stdio.h>
int main()
{
long sum=0,i,s=1;
for(i=1;i<=10;i++)
{
s=s*i;//此处s用于存放(1-10)各数的阶层;
sum=sum+s;//sum是各阶层的累加和;
}
printf("%d\n",sum);
return 0;
}
给你个程序参考一下吧。。呵呵
第2个回答  2010-12-01
程序输出结果是对的,但是,getch();这句给改一下,getchar();
就对了啊,但是我不知道你加这个是说明意思,完全没有必要的啊。。可用不要这句就是的啊。。。程序就是对的了。输出结果也是对的。。。

为了验证,你可以把10改为4,一个小的数据,然后运算验证一下就可以了。。。
第3个回答  2010-12-01
#include<stdio.h>
main()
{
int a=0,b=1,c,d;
while(b<=10)
{
d=1;
for(c=b;c>0;c--)
d=c*d;
a=a+d;
b++;
}
printf("从1到%d的阶乘和为:%d",b-1,a);
getch();
}
第4个回答  2010-12-01
你这道题输出先看看是什么,你输出就不是求阶乘的。
#include<stdio.h>
main()
{
int a=0,b=1,c,d;
while(b<=10)
{
c=b;
for(d=1; c>0; c--)
d=c*d;
a=a+d; //根本不知道你这个a有什么用,建议直接删去。
b++;
printf("%d\n",d);
}

getch();
}
当然这个程序可以求的答案,但是还有很多warning,写程序如果心里没有想法就不要写,要不然就算答案对,对自己也没有什么提高。心里首先把程序运行一遍,这是每个程序员都应该做到的。先把基础学好吧。你上面的错误太多了。写程序先学会读代码,把书上的简单代码学会。然后不看书,根据理解写出来就是自己的。我们都是站在巨人的肩膀上

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网