c++编程的一个题目

来源:百度知道 编辑:UC知道 时间:2024/06/23 01:58:04
就是1!+2!+.....20!(1的阶乘一直+到20的阶乘)#include<stdio.h>
void main()
{int i,j,k;
k=0;
for(i=1;i<=20;i++);
for(j=20;j>=1;i--);
k=i*j;
printf("%d\n",k);
}我这样编写有错误吗 用visual编译出来什么都没有显示,我初学菜鸟别笑我啊.

#include<stdio.h>
int main()
{
int i,j;
long long k=1,sum=0;
for(i=1;i<=20;++i)
{
for(j=i;j>=1;j--)
{
k*=j;
}
sum+=k;
k=1;
}
printf("%d\n",sum);
return 0;
}

有,首先,20的阶乘int放不下了吧,你得用long int
其次,你的程序逻辑不对,继续改

你的程序逻辑有严重错误:
你自己代入数字检查一下就会发现的!
正确的思路是:编写一个函数计算阶乘;
主函数中利用FOR 语句循环二十次,调用函数计算每个数字阶乘
顺便累加!
打印输出。