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

[复制链接]
查看11 | 回复1 | 2008-11-22 11:17:43 | 显示全部楼层 |阅读模式
我给C++的老师发了封邮件 但她有事,没有回这里就问大家吧!!下面是邮件内容:
老师我有两个问题 希望老师解答先说声谢谢呵呵老师 你解答的时候可以直接在我标注的地方也标注你的修改和想法 这样方便比较方便看 谢谢!(大家也这样标注吧,谢谢!!)
下面是我写的程序:
第一个问题是:我写了个程序是关于求1!+2!+3!+。。。。+25!
#include
using namespace std;
int t;int f;int i;
int ai(int g)//定义了个函数专门计算某个数的连乘例如5!=1*2*3*4*5
{

for(i=1;i
using namespace std;
int maxprimenumber (int m, int n);
void main(void)
{int x,y;
cout>x>>y;
y=maxprimenumber(x,y);
if(y==-1)
coutn){t=m;m=n;n=t;}
t=(int)sqrt((double)n);
for(i=n;i>=m;i--)
{
for(j=2;j<=t;j++)
if(i%j==0)break;//假设这个市语句(1)
if(j==t+1)return(i);//假设这个是语句(2)问题1:我想问语句二是不是语句(1)的执行语句,我觉得应该不是吧 因为语句(1)中的break后面有“;”所以break语句才是(1)语句中if 的执行语句,如果是这样的话以后我是否可以将if下面的执行语句都和if写在同一行 假如不讲究美观的话?第2个问题是break语句推出的是for循环吧 不是if条件 对吗?问题3:return(i)是将i值返回到y=maxprimenumber(x,y)中的y中吗?相当于把值赋给y!对吗?
}
return(-1);
}

回复

使用道具 举报

千问 | 2008-11-22 11:17:43 | 显示全部楼层
首先你要用这个函数不应该在前面定义全局变量int ai(int g)正确的是这样的 #include 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语句; re...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行