c++程序的问题

来源:百度知道 编辑:UC知道 时间:2024/06/23 00:50:39
#include<iostream>
using namespace std;
int cheng(int);
void main()
{int m,i=15;
for(;i>0;i++)
m+=cheng(i);
cout<<"15个阶乘的和是:"<<m<<endl;
}
int cheng(int n)
{int s;
s=n;
while(n>1)
s*=n-=1;
return s;
}
这段程序 可以编译,连接,运行.但是不知道为什么 它什么都不输出
有那位兄弟 帮我看一哈 了 感激不尽!

一、
for(;i>0;i++)
这是个死循环
需要改成
for(;i>0;i--)

二、
while(n>1)
s*=n-=1;
这个也是死循环。
改成
while(n>1)
s*=--n;

void main()
是一个返回值为空.
而你的程序有返回值.去了void

15的阶乘超出int的取值范围了,不输出估计是死机了。
还有for(;i>0;i++) 这个循环条件是无限循环.