问题描述
- 为什么我输入以下程序却不能显示呢
-
#include
int main()
{
int i,n,s;
s=0;
for(i=1;i<=20;i++)
{
n=1;
while (i!=0)
{
n=i*n;
i--;
}
s=s+n;
}
printf("总和为%dn",s);
return 0;
} //求一到二十各个数的阶乘的总和
解决方案
首先,你这个是一个死循环.
#include <stdio.h>
int main()
{
int i, n, s;
s = 0;
for (i = 1; i <= 20; i++)
{
n = 1;
while (i != 0)
{
n = i*n;
i--;//这是一个死循环.在这个大循环里,每次走到这个小循环里之后,都会将变量i减成0.然后再在大循环里置成1.
}
s = s + n;
}
printf("总和为%dn", s);
return 0;
} //求一到二十各个数的阶乘的总和
可以这么改
#include <stdio.h>
int main()
{
int i, n, s;
s = 0;
for (i = 1; i <= 20; i++)
{
n = 1;
int t = i;
while (t != 0)
{
n = t*n;
t--;
}
s = s + n;
}
printf("总和为%dn", s);
return 0;
} //求一到二十各个数的阶乘的总和
简化一下代码,可以这么写
#include <stdio.h>
main()
{
int i;
long p = 1;
long s = 0;
for (i = 1; i <= 20; i++)
{
p = p*i;
s = s + p;
}
printf("总和为%dn", s);
}
解决方案二:
你是在什么环境下运行的,是不是输入窗口显示了一下,所以你认为不能显示。
如果是,考虑使用 GetCh 之类的函数来等等用户按键再退出 。
解决方案三:
循环有问题。。。 你在while循环中 把 i 变量做了减减。 但是出了while循环后 在for 循环中又做了 i 加加。。。 这样的话 你的i 其实一直是1. 一直在做for循环。。。。
解决方案四:
很简单的c语言程序啊,我把算法写出来了
int main()
{
int i,sum=1,sumTotle=0;
for (i=1; i<=20; i++) {
sum=1;
for (int j=1; j<=i; j++) {
sum *=j;
}
sumTotle += sum;
}
}
时间: 2024-08-25 08:08:57