C程序调试时出现错误

来源:百度知道 编辑:UC知道 时间:2024/06/23 04:59:36
#include"stdio.h"
int isp(int m)
{
int i;
for(i=2;i<m/2;i++)
{
if(m%i==0)
return 0;
else
return 1;
}
}
void main()
{
int i,j,cnt=0,b[40];
for(i=1;i<=90;i++)
{
if(isp(i)&&isp(i+4)&&isp(i+10))
b[cnt++]=i;
}
for(j=0;j<cnt;j++)
printf("%-3d",b[j]);
}
调试时没有任何错误和警告,但运行却弱出一个对话提示"遇到问题需要关闭。",为什么会出现这个问题呢?

程序我只改了一点,其他的帮你注释起来了,调试通过:
#include"stdio.h"
int isp(int m)
{
int i;
for(i=2;i<m/2;i++)
{
if(m%i!=0)
//return 0;
//else
return 1;
}
return 0;
}
void main()
{
int i,j,cnt=0;
int b[40];
//for(i=1;i<=90;i++) //你要尤其注意,这一句可能导致数组越界,很关键
for(i=1;i<=20;i++)
{
if(isp(i)&&isp(i+4)&&isp(i+10))
b[cnt++]=i;
}
for(j=0;j<cnt;j++)
printf("%-3d",b[j]);
}