题目:编写程序exp3_4.c,先用一层循环判断从键盘读入的正整数x是否为质数,并输出判断结果。在此基础上改写,再加上外层循环,找出规定范围(a,b)内的所有质数,并按每行5个的格式输出。(这里a,b变量从键盘输入并且范围为:10≤a≤b≤1000)
我的答案:#include<stdio.h>
int main()
{
int a,b,x,i,c=0,k=0;
printf("请输入两个数a,b\n");
scanf("%d,%d",&a,&b);
if(a<10||b>1000||a>b)
printf("请输入正确范围内的a和b,[a,b]包含于[10,1000]\n");
else
for(x=a+1;x<=b;x++)//
{
for(i=2;i<x;i++)
{if(x%i==0)
c++;}
if(c>0)
break;
if(c==0)
{
k++;
printf("%5d",x);
if(k%5==0)
printf("\n");
}
}
printf("\n");
system("pause");
return 0;
}
不知道哪里出错了,求大佬们救救孩子⁂((✪⥎✪))⁂
修改见注释处,供参考:
#include<stdio.h>
int main()
{
int a,b,x,i,c=0,k=0;
printf("请输入两个数a,b\n");
scanf("%d,%d",&a,&b);
if(a<10||b>1000||a>b)
printf("请输入正确范围内的a和b,[a,b]包含于[10,1000]\n");
else
for(x=a;x<=b;x++)// 修改
{
for(i=2,c=0;i<x;i++) //修改
{
if(x%i==0)
{
c++;
break;
}
}
//if(c>0) 修改
// break;
if(c==0)
{
k++;
printf("%5d",x);
if(k%5==0)
printf("\n");
}
}
printf("\n");
system("pause");
return 0;
}