社区
C语言
帖子详情
c语言素数问题
qq56328974
2012-02-09 11:22:17
#include<stdio.h>
void main()
{int a,b,c=1;
for(a=100;a<=200;a++){
for (b=2;b<a;b++) {
if(a%b==0)
{c=0;break;}
// else{
// c=1;}
}
if(c){
printf("%d是素数",a) ;}
}
}
为什么把注释去掉就可以,不去掉就不行呢。c明明有初值1的
...全文
145
6
打赏
收藏
c语言素数问题
#include void main() {int a,b,c=1; for(a=100;a<=200;a++){ for (b=2;b<a;b++) { if(a%b==0) {c=0;break;} //else{ // c=1;} } if(c){ printf("%d是素数",a) ;} } } 为什么把注释去掉就可以,不去掉就不行呢。c明明有初值1的
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
自信男孩
2012-02-09
打赏
举报
回复
[Quote=引用 2 楼 qdujiaolong 的回复:]
你这个是两层循环,假如有一个数不是素数,那么此时c变成0了,同时break,这是它只跳出了第二层循环。这时if(c)不满足条件,不输出,然后进入外循环的下一个数。这是C是0,不再是1,如果不加注释那个恢复c=1这一步,那么下面的所有运行,c都是0,不可能再变为1,所以是素数也判断不出来了。不知道楼主能听明白么?
[/Quote]
++
seagpf
2012-02-09
打赏
举报
回复
同意楼上的,楼主应该在每次第二层循环的时候都进行c = 1的赋值,比如for (c = 1, b = 2;b < a; b++),关键是每次循环时候都保证C的初始值是1
面包大师
2012-02-09
打赏
举报
回复
if(c)
{
printf("%d是素数",a) ;
}
c = 1;//你应该在这个后边加个
面包大师
2012-02-09
打赏
举报
回复
虽然有赋初值,但是在if(a%b==0)这个成立的时候就被赋值为了0.假设那个不注释掉,那么只要if(a%b==0)这个不成立,就被认为是素数,这是不正确的
心塵
2012-02-09
打赏
举报
回复
你这个是两层循环,假如有一个数不是素数,那么此时c变成0了,同时break,这是它只跳出了第二层循环。这时if(c)不满足条件,不输出,然后进入外循环的下一个数。这是C是0,不再是1,如果不加注释那个恢复c=1这一步,那么下面的所有运行,c都是0,不可能再变为1,所以是素数也判断不出来了。不知道楼主能听明白么?
赵4老师
2012-02-09
打赏
举报
回复
单步调试和设断点调试是程序员必须掌握的技能之一。
素数
对猜想(
C语言
).cpp
C语言
素数
对
求质数
问题
的
c语言
实现
c语言
中求质数
问题
的实现代码,可直接编译执行
C语言
求
素数
的和。
c语言
源代码 判断是否是
素数
然后把
素数
相加..
C语言
质数算法
用
C语言
实现质数的输出。可以从1到2^32-1之间的数值。
用
C语言
素数
打表
素数
,应用很广泛的一个数据分类,为方便学习和使用
素数
。特传此用
C语言
实现的
素数
打表。
C语言
70,023
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章