看看偶的分析有什么问题!
#include<stdio.h>chen(int n)
{
int i,j;
if(n%2||n==2 )
{
printf("Error:%d is an odd mumber or equals to2!\n",n);
return;
}
for(i=n-2;i>=n/2;i--)
{
for(j=2;i%j;j++);
if(j!=i)continue;
for(j=2;(n-i)%j;j++);
if(j!=n-i)continue;
printf("%3d=%3d+%3d\n",n,i,n-i);
}
}
main()
{
int test_data[]={6,8,10};
int i;
for(i=0;i<3;i++)
chen(test_data[i]);
getch();
}
一、这个程序能在WINTC在编译,但不能在DEVC++上编译,总说有错误,就这个程序能简单说c与c++的区别吗?
二,程序分析:把数组test_data里面的三个数偶数6,8,10。分别写成两个质数相加。
{
int i,j;
if(n%2||n==2 )
{
printf("Error:%d is an odd mumber or equals to2!\n",n);
return;
}
这一段程序是判断所数组的元素是否为奇数和2
for(i=n-2;i>=n/2;i--)//第一个循环
{
for(j=2;i%j;j++);//第二个循环
if(j!=i)continue;
for(j=2;(n-i)%j;j++);
if(j!=n-i)continue;
printf("%3d=%3d+%3d\n",n,i,n-i);
}
这一段,偶有点模糊!当N=6时,i=4(初值),i>=n/2,执行下面语句,进入第二个循环,j=2,i%j的值0,应该终止第二循环,执行printf语句呀!这个就有6=2+4的输出呀!但程序却不是这样,而是成功的输入出了6=3+3,8=5+3,10=7+3,10=5+5不解呀!!偶的分析有错吗?
[ 本帖最后由 xinbuzai 于 2010-7-3 08:54 编辑 ]