验证哥德巴赫猜想:一个不小于6的偶数n可以表示为两个素数之和 错哪了 多谢

验证哥德巴赫猜想:一个不小于6的偶数n可以表示为两个素数之和 哪里错了 谢谢
#include<iostream>
#include<cmath>
using namespace std;
int main()
{void gotbaha(int n);
int n;
cout<<"输入一个大于6的偶数n:";
cin>>n;
gotbaha (n);
return 0;
}
void gotbaha(int n)
{int prime(int c);
int a,b;
for (a=3;a<n-3;a+=2)
{b=n-a;
if (prime(a)&&prime(b))
cout<<n<<"="<<a<<"+"<<b<<endl;break;
}
}
int prime(int c)
{int i;
for(i=2;i<=sqrt(c);i++)
{if(c%i!=0) return c;
else return 0;
}
}

------解决方案--------------------
C/C++ code
#include<iostream>
#include<cmath>
using namespace std;

int prime(int c);       //  这两个函数需要前置声明。
void gotbaha(int n);

int main()
{
    void gotbaha(int n);
    int n;
    do                  //  加个循环,测试时轻松些
    {
        cout<<"输入一个大于6的偶数n:";
        cin>>n;
        gotbaha (n);
    }while(n>0);
    return 0;
}
void gotbaha(int n)
{
    //int prime(int c);       //  这里你是要做什么呢?
    int a,b;
    for (a=3;a<n-3;a+=2)
    {
        b=n-a;
        if (prime(a)&&prime(b))
        {                           //  这里要括起来,否则编译器可不会因为你把两条语句写在一行里就认为它们都属于if的子句。
            cout<<n<<"="<<a<<"+"<<b<<endl;
            break;
        }
    }
}
int prime(int c)
{
    int i;
    for(i=3;i<=sqrt((double)c);i+=2)     //  sqrt函数需要明确的参数类型;i从3开始就行了,因为不可能有2;步长设为2,因为i不可能是偶数
    {
        if(c%i==0)
            return 0;       //  如果确认了这个数不是质数,返回0。
    }
    return 1;       //  它是质数,返回1。
}