有这么几处错误:
以下是引用wandison在2006-11-23 18:14:23的发言:
我为什么用这个循环不行??求一个偶数等于素数之和.打印出来.
#include<stdio.h>
#include<math.h>
main()
{
int i,j,n,j1,i1;
printf("input the n=");
scanf("%d",&n);
if(n%2==1)
printf("the number is wrong\n");
for(i=1;i<=n/2;i++) /*i 不能从1开始,应该从2开始.另,以下程序最好放在 else{ }中*/
{
j=n-i;
for(j1=2;j<=sqrt(j);j1++) /* 条件语句中的 j 应该换成 j1 */
{
for(i1=2; i1<=sqrt(n/2); i1++)
{ if (j%j1==0 && i%i1==0) /*这句完全错误,如果条件满足的话,i, j就是偶数了*/
printf("j=%d, i=%d\n", j, i);
}
}
}
}
下面是我改了以后的程序:
#include<stdio.h>
#include<math.h>
int main()
{
int i,j,n,j1,i1,k=1;
printf("input the n=");
scanf("%d",&n);
if(n%2==1)
printf("the number is wrong\n");
else
for(i=2;i<=n/2;k=1,i++)
{
j=n-i;
for(j1=2;j1<=sqrt(j);j1++)
{
for(i1=2; i1<=sqrt(n/2); i1++)
if(j%j1==0 || i%i1==0)
{
k=0;
break;
}
}
if(k==1)printf("j=%d, i=%d\n", j, i);
}
return 0;
}
[此贴子已经被作者于2006-11-24 18:49:54编辑过]