永发信息网

c++问题:输出100-200之间的素数。为什么我编的不对会多输出一些数?请帮我找出错误

答案:2  悬赏:20  手机版
解决时间 2021-05-10 18:22

这是我做的

#include <stdio.h>
#include <math.h>
void main()
{ int m,i,k,n;
n=0;
for (m=101;m<=200;m=m+2)
{
k=sqrt(m);
for(i=2;i<=k;i++);
if(m%i==0) break;
if(i>k)
{ printf("%d ",m);
n=n+1;}
if(n%5==0) printf("\n");
}
printf("\n");
}

这是结果,多了好多!

101 103 105 107 109
111 113 115 117 119
121 123 125 127 129
131 133 135 137 139
141 143 145 147 149
151 153 155 157 159
161 163 165 167 169
171 173 175 177 179
181 183 185 187 189
191 193 195 197 199

Press any key to continue

最佳答案
#include <stdio.h>
#include <math.h>
void main()
{ int m,i,k,n;
n=0;
for (m=101;m<=200; m=m+2)
{
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0) break;

if(i>k)
{ printf("%d ",m);
n=n+1;
if(n%5==0) printf("\n");
}
}
printf("\n");
}
全部回答

for(i=2;i<=k;i++); if(m%i==0) break;

这里错了,for语句后多了个分号,你的编码不规范才会出这种问题的

这2句你要改为:

for(i=2; i <=k; i++)

{

if(m%i==0)

{

break;

}

}

1,语句多短,都要养成大括号为独立一行

2,一个语句要单独成行,多个语句一行错误很难查的

3,while,for等循环体就算只有一行也要用大括号,这样代码才会清晰

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
qq牧场中的冠企鹅多少级?
多普达htcxv6900主题怎么下
阳泉开发区附近哪里有房屋出租
求“极品小怪兽”的繁体字
SuoAi家族的主创是谁?
明天有NBA球赛么?
火龙果有何用
金基范的女友演过什么电视?
幻世金券能换银票吗
5分之4*( )=( )÷7分之3=4分之3÷( )=7分之6+
玩CSOL延迟很高
qq飞车的紫钻抽奖真的有永久A车麽?多大几率
电脑出现乱码,如何解决?
男人梦见自己去修破鞋有什么征兆
为什么我手机充电器一直是在提示充电。不管充
推荐资讯
NDF称号哪个任务做的?
电力系统谐波抑制技术的研究
为什么酒店大亨下载了安装不了
谁有 マイガール下载地址
陕煤集团是陕西省的大型国有企业,那么请问,
爱音乐的人之间是不是可以找到共鸣
笔记本电池应该怎样保养?
谁能帮我写一首诗。有情感的哟。原创的哟
笑起来很甜美句子,形容人笑容很美气质轻灵脱
LG1011牌子的手机怎么关按键音阿?
范文程因受排挤而当汉奸,那宁完我呢?
怎样才能忍住,不让眼泪流出来
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?