一切都正常就是不显示
#include
#include
int main()
{
int a,b,i,k,count1,count2;
for(k=4;k<=100;k+k+2)
{
for(a=2;a<=k/2;a++)
{
//判断a是否为质数
count1=0;
for(i=2;i<=a-1;i++)
{
if(a%i==0)
{
count1++;
break;
}
}
if(count1==0) //如果a为质数
{
b=k-a;
//判断b是否为质数
count2=0;
for(i=2;i<=b;i++)
{
count2++;
break;
}
}
if(count2==0) //如果b也为质数
{
printf("%d=%d+%d",k,a,b);
break; //打印这个解并跳出这个循环
}
}
}
system("pause");
return 0;
}
for(k=4;k<=100;k+k+2)
k+k+2是在干啥,你是认真的吗
这就是个标准死循环,k永远等于4
第一个for.循环有错,你不能那样整,如果你的目的是想找从4-100的话,那个k要写成k++.
而你写的相当于是一个常量,是不变的
修改见注释处,供参考:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a, b, i, k, count1, count2;
for (k = 4; k <= 100; k++) //for (k = 4; k <= 100; k + k + 2) 修改
{
for (a = 2; a <= k/2 ; a++)
{
//判断a是否为质数
count1 = 0;
for (i = 2; i <= a - 1; i++)
{
if (a % i == 0)
{
count1++;
break;
}
}
if (count1 == 0) //如果a为质数
{
b = k - a;
//判断b是否为质数
count2 = 0;
for (i = 2; i <= b - 1; i++) //for (i = 2; i <= b; i++)
{
if (b % i == 0) //修改
{
count2++;
break;
} // 修改
}
//} 修改
if (count2 == 0 && b != 1) //如果b也为质数 修改
{
printf("%d=%d+%d\n", k, a, b);
break; //打印这个解并跳出这个循环
}
} //修改
}
}
system("pause");
return 0;
}