求助C++强人 我编的程序怎么也通不过

来源:百度知道 编辑:UC知道 时间:2024/09/24 23:30:15
程序及问题如下

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
void godbaha(int);
int n;
do
{
cout<<"input 大于6的偶数 n:";
cin>>n;
if ((n<=6)||(n%2==1))
{
cout<<"Re-enter n.\n";
}
while ((n<6)||(n%2==1));
}

godbaha(n); (显示该行ERROR: identifier godbaha 但是去掉上面的while结果就没问题了)

return 0;
}
void godbaha(int n)
{
int prime(int);
int a,b;
for(a=3;a<=n/2;a=a+2)
{
if(prime(a))
{
b=n-a;
if (prime(b))
cout<<n<<"="<<a<<"+"<<b<<endl;}

}
}
int prime(int m)
{
int i,k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0) break;
if (i>k) return 1;
else
return 0;

#include <iostream>
#include <cmath>
using namespace std;

void godbaha(int );//自定义的函数在应该在主函数之前先声明,实现可以放在后面或者前面
int prime(int ) ;

int main()
{

int n;
do
{
cout<<"input 大于6的偶数 n:";
cin>>n;
if ((n<=6)||(n%2==1))
{
cout<<"Re-enter n.\n";
}

} while ((n<6)||(n%2==1));//你的do-while循环的格式写错了。应该这样才对。

godbaha(n); //(显示该行ERROR: identifier godbaha 但是去掉上面的while结果就没问题了)

return 0;
}

void godbaha(int n)
{
int prime(int);
int a,b;
for(a=3;a<=n/2;a=a+2)
{
if(prime(a))
{
b=n-a;
if (prime(b))
cout<<n<<"="<<a<<"+"<<b<<endl;}

}
}
int prime(int m)
{
int i,k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0) break;
if (i>k) retur