因为你用的是int型范围是-32767~32768所以当算到7!的时候就越界了
1
[此贴子已经被作者于2006-11-5 20:07:13编辑过]
#include<stdio.h>
int main()
{
int num1,num2,num3,zero;
int function1(int);
printf("enter in 3 even numbers(6<=num<=10000)and enter 0 to continue:");
scanf("%d%d%d",&num1,&num2,&num3);
scanf("%d",&zero);
while(1)
{if(zero==0)
break;
else
scanf("%d",&zero);}
function1(num1);
function1(num2);
function1(num3);
return 0;
}
void function1(int num)
{
int a,b,c,d,m,n;
int k=0,l=0;
for(a=3;a<=num-3;++a)
{
b=num-a;
for(c=2;c<a;++c)
{
m=a%c;
if(m!=0)
++k;
}
for(d=2;d<b;++d)
{
n=b%d;
if(n!=0)
++l;
}
if(k==a-2&&l==b-2)
printf("%d=%d+%d\n",num,a,b);
}
}
这个程序哪里不对?
为什么只能是3+*