c++问题 大家进来帮忙 谢谢

来源:百度知道 编辑:UC知道 时间:2024/05/31 06:07:45
我给C++的老师发了封邮件 但她有事,没有回 这里就问大家吧!!下面是邮件内容:
老师我有两个问题 希望老师解答 先说声谢谢 呵呵 老师 你解答的时候可以直接在我标注的地方也标注你的修改和想法 这样方便比较 方便看 谢谢!(大家也这样标注吧,谢谢!!)
下面是我写的程序:
第一个问题是:我写了个程序 是关于求1!+2!+3!+。。。。+25!
#include <iostream>
using namespace std;
int t;int f;int i;
int ai(int g) //定义了个函数 专门计算某个数的连乘 例如5!=1*2*3*4*5
{
for(i=1;i<=g;i++) //写个循环 让某个数自增
{f=f*t; //保存已经乘了的结果
t++; //自增 以便达到t等于g
g=f;}// 将结果赋到g中
return g; }
void main(int i,int s)//主函数中定义了变量i,s
{
for (i=1;i<=25;i++) //(1)
{s=s+ai(i);//利用下面的函数来求连乘
}
cout<<s; //输出结果
}
对于结果 我认为是错误的! 因为我将语句(1)中的i值改变后 结果还是原来的值没变!!怎么修改我写的程序?还有我想问下老师 对于自己定义的函数 是不是不能写在MAIN主函数中啊?

下面是问题2:
是书上的一个程序 我又几个地方不理解 请教老师 下面是程序:
#include <iostream>
#include <math.h>
using namespace std;
int maxprimenumber (int m, int n);
void main(void)
{ int x,y;
cout<

首先你要用这个函数不应该在前面定义全局变量int ai(int g)正确的是这样的
#include <iostream>
using namespace std;
long ai(int g)
{
int i,f=1;
for(i=1;i<=g;i++)
{
f=f*i;
}
return f;
}
void main()
{
long i,s=0;
for(i=1;i<=25;i++)
{
s=s+ai(i);
}
cout<<s<<endl;
}
这个程序是正确的你可以试下.

在第二个程序中break语句是直接退出它所在的for语句并不是if语句; return(i)的i就是指y