求问用筛选法求100以内的素数里,i进入了if(i==j)后还是等于素数的,但是再往下进入内循环for后就一直等于2是为什么
![](https://profile-avatar.csdnimg.cn/default.jpg!4)
变量i一进入内循环for就一直等于2
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- a5156520 2024-02-23 11:44关注
确实是因为没有重置b的值导致进入不了循环。
#include <stdio.h> int main(void){ int a[101],i,j,k,b; for(i=1;i<101;i++){ a[i]=i; } a[1]=0; for(i=2;i<101;i++){ for(j=2;j<=i;j++){ if(i%j==0){ break; } } // printf("after for i=%d\n",i); if(i==j){ // printf("i=%d,",i); b=2*i; //printf("i=%d,b=%d\n",i,b); for(k=2;b<=100;k++){ //printf("i=%d,b=%d\n",i,b); printf("%d ",i); a[b]=0; b=k*i; } } } for(i=2;i<=100;i++){ if(a[i]!=0){ printf("%d ",a[i]); } } return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 晶体塑性有限元——Damask求解
- ¥15 写出这个有没有人能写一下今天中午就要
- ¥30 设计一个图形用户界面来控制你机械臂的运动
- ¥30 3d打印机无法识别到SD卡,如何解决?(相关搜索:格式化)
- ¥15 RPG游戏架构设计和开发方法
- ¥15 前端返回pdf时不显示内容
- ¥50 如何在不能联网影子模式下的电脑解决usb锁
- ¥20 服务器redhat5.8网络问题
- ¥15 如何利用c++ MFC绘制复杂网络多层图
- ¥20 要做柴油机燃烧室优化 需要保持压缩比不变 请问怎么用AVL fire ESE软件里面的 compensation volume 来使用补偿体积来保持压缩比不变