| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
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;
 
 - }
 
  复制代码
不知道是否解決您的問題,同時也請您找出最佳解答!!感謝  
 
 
 |   
 
 
 
 |