|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
-
- //输出100以内的素数
- int i,j;
- int IsPrime = 1; //素数情况下
- for(i = 2;i < 100;i++)
- {
- for(j = 2;j < i;j++)
- {
- if(i%j == 0)
- {
- IsPrime = 0;
- break;
- }
- }
- if(IsPrime == 1)
- {
- printf("%d ",i);
- }
- }
- return 0;
- }
复制代码
本帖最后由 gary冥霧 于 2018-8-27 19:56 编辑
如果你不把IsPrime = 1;写在第一个for循环里,的話那IsPrime = 1;只有在第一次執行時成立,第二次跑for迴圈時IsPrime並不等於1而是永遠等於0。
正確程式碼如下:
- #include<stdio.h>
- #include<stdlib.h>
- int main()
- {
- int i, j, IsPrime;
- for (i = 2; i <= 100; i++)
- {
- IsPrime = 1;
- for (j = 2; j < i; j++)
- {
- if (i%j == 0)
- {
- IsPrime = 0;
- break;
- }
- }
- if ( IsPrime==1)
- printf("%d\n", i);
- }
- system("pause");
- return 0;
- }
复制代码
對了魚油(紫魔洪荒) - #include<stdio.h>
- #include<stdlib.h>
- int main()
- {
- int i, j, IsPrime;
- for (i = 2; i <= 100; i++)
- { IsPrime = 1;//标记
- for (j = 2; j < i; j++)
- {
- if (i%j == 0)//你少加 " { "
- IsPrime = 0;
- break;//和 " } " 沒這組大括弧會差很多!!
- }
- if ( IsPrime==1)
- printf("%d\n", i);
- }
- system("pause");
- return 0;
- }
复制代码
不知道是否解決您的問題,同時也請您找出最佳解答!!感謝
|
|