思路很不错啊。只是代码的27行出了点问题哈
}
if (key == 1)
{
printf("%d\n", i);
}
}
}
}
}
}
int p(int t) {
int k;
if (t < 2)
return 1;
for (k = 2; k * k <= t; k++) {
if (t % k == 0)
return 1;
}
return 0;
}
就是当key = 0的时候,你的程序还是没有退出循环,最终会导致当第一位的数字和第四位的数字相同时,就打印输出
if(m[h++] == m[j--]) 这里有个逻辑错误,罗列下就知道了
h j
0 3 第一轮
1 2 第二轮
3 1 第三轮
3 0 第四轮
第一轮 和 第四轮 重复了,第四轮 这里都==1,所以key=1,就输出了。
你应该判断只要有一轮不一样就退出循环了