一个程序题,不知错在哪里
谁能帮帮我看看这程序错在哪里,为什么总输出the number is false,please aganin a dualnum。程序是
int main(int argc, char *argv[])
{int goldbach(int x);
int x,c,l,m;
printf("if you want to end,please enter 0\n");
for (m=1;m<100;m++)
{printf("please enter a dualnum which overtakes 3:");
scanf("%d",&x);
if(x=0) break;
else if(x<4||x%2!=0)
printf("the number is false,please aganin a dualnum\n") ;
else {int goldbach(int x);
c=l;
if (c=0) printf("the conclusion is ture\n");
else printf("the conclusion is false\n");
}
}
return 0;
}
int goldbach(int x)
{int b,d,p,h,j,l;
for(b=1;b<x;b++)
{d=x-b;
int perime(int d),p=j;
int perime(int b),h=j;
l=(p+h)/2;
if (l=0) break;
}
return(l);
}
int perime(int f)
{int i,j,g;
for (i=1;i<f;i++)
{g=f%i;
if(g=0) j=1;
else j=0;
}
return(j);
}
题目是
1. 上次上机课我们已实现prime函数用于判读一个数是否为素数,本次课编写goldbach函数,并调用prime函数验证哥德巴赫猜想——任何不小于4的偶数,都可表示为两个素数之和(如:4=2+2)。
要求:
1)在main函数中利用循环结构连续提示用户输入一个不小于4的偶数num,并将其作为实参传递给goldbach;若num小于4或为奇数,则输出错误信息并提示用户重新输入;若用户想退出输入,则输入0.
2)在goldbach函数中调用prime函数判断用户输入的数是否可表示为两个素数之和,若可以,则哥德巴赫猜想得证,否则,输出错误信息。