C语言求助,《求m和n之间的所有素数》

【问题描述】输入两个正整数m和n(m≥1,n≤500),输出m和n之间的所有素数,每行输出6个。素数是指只能被1和自身整除的正整数,最小的素数是2ʍ... 【问题描述】
输入两个正整数m和n(m≥1,n≤500),输出m和n之间的所有素数,每行输出6个。素数是指只能被1和自身整除的正整数,最小的素数是2。
【输入形式】
从键盘输入两个正整数m和n。
【输入输出样例1】(下划线部分表示输入)
Input m: 1
Input n: 35
2 3 5 7 11 13
17 19 23 29 31
【样例说明】
每行输出6个正整数,每个正整数按%4d格式输出。
输入提示符后要加一个空格。其中“:”后要加一个且只能一个空格。
英文字母区分大小写。必须严格按样例输入输出。
我的程序:
#include<stdio.h>
#include<math.h>
int main(void)
{
int m,n,c,i,j;
c=0;
printf("input m: ");
scanf("%d",&m);
printf("input n: ");
scanf("%d",&n);
for(i=m;i<=n;i++){
for(j=2;j<=i/2;j++)
if(i%j==0)
break;
if(j>i/2&&i!=1){
printf("%4d",i);
c++;
}
if(c!=0)
if(c%6==0)printf("\n");
}
return 0;
}
问题是“\n”会输出好几个,究竟是为什么呢?如图,求指教!!
、n
展开
 我来答
百度网友dee022b
2014-04-18 · 超过22用户采纳过TA的回答
知道答主
回答量:67
采纳率:0%
帮助的人:25.7万
展开全部
你的第二层for循环后面好像缺失一个“{”;要注意代码格式,你这个代码格式读起来很痛苦哦

思路应该是:第一层for循环是循环m到n之间,{第二层for循环判断这个数是不是素数,是的话就输出;然后再判断这一行有没有6个了,有6个就输出一个换行}
追问
汗,我是新手菜鸟,你能帮我改正一下吗?就发改正部份就行
牛头人小小酋长
2014-04-18 · TA获得超过194个赞
知道答主
回答量:76
采纳率:0%
帮助的人:46万
展开全部
因为每次不是质数的时候你还是判断是不是c是6的倍数,这个应该放在C++后面
更多追问追答
追问
汗,我是新手菜鸟,你能帮我改正一下吗?就发改正部份就行
追答
#include
#include
int main(void)
{
int m,n,c,i,j;
c=0;
printf("input m: ");
scanf("%d",&m);
printf("input n: ");
scanf("%d",&n);
for(i=m;ii/2&&i!=1){
printf("%4d",i);
c++;
if(c%6==0)printf("\n");//每次有素数输出再判断要不要换行
}

}
printf("\n");
return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式