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

来源:百度知道 编辑:UC知道 时间:2024/06/06 08:21:59
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)

代码修改如下:
#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>&