你prime函数中问题比较多,内外循环用的都 i变量,代码逻辑也不对。
给你写了个例子,参考下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)
#include <stdio.h>
int prime(int a, int b);
int main()
{
int m, n;
scanf("%d%d",&m,&n);
prime(m,n);
return 0;
}
int prime(int a, int b)
{
int i,j,flag=1;
for(i=a; i<=b; i++) {
flag=1;
if(i<=1)
flag=0;
else {
for(j=2; j<i; j++)
if(i%j==0) {
flag=0;
break;
}
}
if (flag==1)
printf("%d ", i);
}
}
prime函数中,内外循环用到同一个变量去控制循环,逻辑不对。你写的内循环终止条件也不可能成立的。
你应该是死循环了
你两次for循环使用的都是i变量,里层的循环会导致外层的i不断重置,应该是这部分形成了死循环
有帮助望采纳~
外层循环从i=a开始,可内存循环的条件又是i<a,矛盾啊。所以内层循环根本不执行,所以啥输出也没有。把i<a去掉