求纠错。输入两个正整数m和n(m≥1,n≤500),输出m和n之间的所有素数,每行输出6个。

#include<stdio.h>
#include<math.h>
int main(void)
{
int m,n,a,i,x,y,z;
y=0;
printf("Input m: ");
scanf("%d",&m);
printf("Input n: ");
scanf("%d",&n);
if(m>n)
{a=m;
m=n;
n=a;}
for(x=m;x<n;x++)
{z=m;
for(i=2;i<=z;i++)
{
if(x%i==0)
break;
else
{printf("%6d",x);
y++;}
if(y/6==0)
printf("\n");
}
}

return 0;
}

我把这个程序的某些功能给删除了,你的程序后半段有逻辑错误,你可以参考下我的程序

#include<stdio.h>
void main()
{
int a,b,m=1,temp,i,n=0,flag;
printf("please input two number:\n");
scanf("%d%d",&a,&b); //输入a和b的值,确定区间
if(a>b){
temp=a;
a=b;
b=temp;}
for(n=a;n<b;n++) //确定a和b区间的素数
{
for(i=2,flag=1;i<n;i++)
if(n%i==0)
flag=0;
if(flag==1)
{
printf("%4d ",n);
if(0==(m%6))
printf("\n");m++;
}
}
printf("\n");
}

来自:求助得到的回答
温馨提示:答案为网友推荐,仅供参考