会设置断点吗?跟踪察看呀。
在循环处多设几个。
经常会有类似问题的
Tc中,一些具体的快捷操作如下:
F1:得到帮助
F2: 保存C源文件
F3:装入C源文件
Alt+F3:装入最近编辑源文件
Alt+X:退出Tc
F9:编译生成EXE
Ctrl+F9:编译生成EXE并执行
F6:切换源代码窗口和编译信息窗口
F4:跳转到光标处
F7:跟踪调试,进到函数内部
F8:跟踪调试,跳过函数体
Ctrl+F8:设置断点
Ctrl+F2:程序重置
最有可能死掉的地方就是这里,死循环了:
while(1)
{
}
在他的前面和后面分别设置一个断点,运行到前面的断点时,代码窗口会跳出来。继续运行,可能就到不了下一个断点了。
附:在程序循环的部分中,可以加一些输出,printf("%d %d\n ",half,data)之类的,随时 监控你的过程。如果不停的运算并且超出了意象的范围那就说明肯定有问题了。
虽然没有直接的解决这个题,但一点小小的方法也许会一直帮助你。
num()函数改为如下:
void num(int m, int k, int xx[])
{
int data=m+1;
int half,i,j=0;
while(1)
{
half=data/2;
for(i=2;i
if(data%i==0)
break;
}
if(i>=half)/*注意这里*/
{
xx[j]=data;
j++;
}
if(j>=k)/*注意这里*/
break;
data++;
}
}