C++高手帮忙进来解答下这道题,谢谢!

4、 程序改错(注意:错误在注释行的下一行,不可增加或删除程序行,也不可更改程序的结构)
1) 判断n是否为素数
#include<iostream.h>
void main(){
int n,i;
cin>>n;
//************错误1********************
for(i=2;i<=n;i++)
//************错误2********************
if(n%i==0) continue;
if(i>n)
cout<<”yes”<<endl;
else
cout<<”no”<<endl;
}
2) 输入两个数a和b,并用函数f()求出较大者
#include<iostream.h>
//***************错误3*******************
void f(int x, int y)
{
int z;
if(x>y) z=x;
else z=y;
return z;
}
void main(){
int a,b,c;
//***************错误4*********************
cin>>A>>B;
c=f(a,b);
cout<<c;
}

1: for(i=2; i<n; i++)
判断素数,只要 2--(n-1)(实际上只需判断到 根号下 n)都不能整除n, n就是素数。

2: continue 改成break

如果有一个数可以整除n,那么n就不是素数,循环就可以结束了。

3:void 改成int, f()函数有一个返回值, 为int 型的。

4: cin>>a>>b; C语言中 区分字母大小写。也就是说,a,A是不同的标示符。

5:另外还有一处错误,可能是你打错了。
错误2下面:
if(i>n) cout<<”yes”<<endl;
应该为 if(i>=n)
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-03-13
代码修改如下:
#include<iostream.h>
void main(){
int n,i;
cin>>n;
if(n<=1)
cout<<"NO"<<endl;
if(n==2)
cout<<"Yes"<<endl;
for(i=2;i<n;i++)
{
if(n%i!=0)
cout<<"Yes"<<endl;
else
cout<<"NO"<<endl;
}
2) 输入两个数a和b,并用函数f()求出较大者
#include<iostream.h>
int f(int x, int y)
{
int z;
if(x>y) z=x;
else z=y;
return z;
}
void main(){
int a,b,c;
cin>>a>>b;
c=f(a,b);
cout<<c;
}
第2个回答  2008-03-13
给你个标准答案,我就不多解释了
1.i<n 不要=
2.continue 改break
3.void 改 int
4.A,B改成a,b
相似回答