懒爷驾到 发表于 2022-11-21 19:40:02

输出1到100的素数

输出结果出错,求指点。
谢谢各位!


#include <stdio.h>

int main()
{
        int x=2;
        int i=2;
        int n=1;

        for(;x<100;x++){
       
                for(;i<x;i++){
                            
                             if(x%i==0){
                                     n=0;
                                     break;
                               }
                }
                               
                if(n==1){
                        printf("%d ",x);
                     }
       
       }
        return 0;
}

tommyyu 发表于 2022-11-21 19:44:28

第10行加上n = 1,第11行改成for(i=2;i<x;i++)#include <stdio.h>

int main()
{
      int x=2;
      int i=2;
      int n=1;

      for(;x<100;x++){
                      n = 1;
                for(i = 2;i<x;i++){
                           
                           if(x%i==0){
                                     n=0;
                                     break;
                                 }
                }
                              
                if(n==1){
                        printf("%d ",x);
                     }
      
       }
      return 0;
}

懒爷驾到 发表于 2022-11-21 19:59:25

我复制了你修改后的代码,但它只输出了2 3

tommyyu 发表于 2022-11-21 20:17:25

懒爷驾到 发表于 2022-11-21 19:59
我复制了你修改后的代码,但它只输出了2 3

{:10_277:}我这是正常的

懒爷驾到 发表于 2022-11-21 20:28:33

我也不知道怎么回事,现在又可以了。
所以不能在循环外给 i & n 赋值吗

tommyyu 发表于 2022-11-21 20:34:50

懒爷驾到 发表于 2022-11-21 20:28
我也不知道怎么回事,现在又可以了。
所以不能在循环外给 i & n 赋值吗

他每一轮循环都会改变 i 和 n 的值,所以要重新赋值

懒爷驾到 发表于 2022-11-22 16:11:14

我懂了,谢谢!!!
页: [1]
查看完整版本: 输出1到100的素数