算法错误:
1、从a=1开始循环,a=1时,每一个正整数%a都等于0,中断,因此无法判断素数。a应该从2开始循环。
2、条件语句错误,如果整除取余为零,中断,否则就输出i,如果上一个错误改正的话,这里只要不能整除某一个a,就会输出i的值。
因此你的算法完全错误。
#include
int main()
{
int a,i,n=0;//满足题意的素数很多,需要分行写,添加变量n,并赋初始值0
for(i=1;i<=1000;i++)
{
for(a=2;a<=i-1;a++)//a=1改为a=2
if(i%a==0)
break;
//else //两种情况并不是并列,因此此句需要取消
if(a==i) //添加此句
{//加大括号
printf("%-4d",i);//为输出美观,规定输出格式
n++;//添加此句
if(n%10==0)//添加此句
printf("\n");//添加此句
}//添加大括号
}
return 0;
}