Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
打印范围内的素数有什么问题 //打印范围内的素数 #包括 #包括 #包括 int main(){ 整数i,上,n,k,l,素数; 整数素数[300]; 素数[0]=2; printf(“输入上限:”); scanf(“%d”及以上); l=0; 对于(i=5;i=上限;i+=2){ 素数=0; 对于(k=0;k=l;k++){ 如果(i%primes[k]==0){//如果不是质数集prime=0 素数=1; 打破 } } 如果(素数==0){ l++; 素数[l]=i;//否则存储为数组 } } 对于(n=0;n=l;n++){ printf(“%d”,素数[n]);}//打印数组中的元素 返回0; //函数结尾}_C - Fatal编程技术网

打印范围内的素数有什么问题 //打印范围内的素数 #包括 #包括 #包括 int main(){ 整数i,上,n,k,l,素数; 整数素数[300]; 素数[0]=2; printf(“输入上限:”); scanf(“%d”及以上); l=0; 对于(i=5;i=上限;i+=2){ 素数=0; 对于(k=0;k=l;k++){ 如果(i%primes[k]==0){//如果不是质数集prime=0 素数=1; 打破 } } 如果(素数==0){ l++; 素数[l]=i;//否则存储为数组 } } 对于(n=0;n=l;n++){ printf(“%d”,素数[n]);}//打印数组中的元素 返回0; //函数结尾}

打印范围内的素数有什么问题 //打印范围内的素数 #包括 #包括 #包括 int main(){ 整数i,上,n,k,l,素数; 整数素数[300]; 素数[0]=2; printf(“输入上限:”); scanf(“%d”及以上); l=0; 对于(i=5;i=上限;i+=2){ 素数=0; 对于(k=0;k=l;k++){ 如果(i%primes[k]==0){//如果不是质数集prime=0 素数=1; 打破 } } 如果(素数==0){ l++; 素数[l]=i;//否则存储为数组 } } 对于(n=0;n=l;n++){ printf(“%d”,素数[n]);}//打印数组中的元素 返回0; //函数结尾},c,C,为什么不起作用呢?在python中,当我使用列表时,它可以很好地工作。但在这里,它甚至没有超过输入。我犯了什么错误。我也已经编译过了 (i=5;i=upper;i+=2){的行应该是(i=3;iN) 返回-1; l=0; 对于(i=3;i

为什么不起作用呢?在python中,当我使用列表时,它可以很好地工作。但在这里,它甚至没有超过输入。我犯了什么错误。我也已经编译过了

  • (i=5;i=upper;i+=2){的行
    应该是(i=3;i
  • (k=0;k=l;k++){的行
    应该是(k=2;k!=i;++k)
  • if(i%k==0
    应该是
    if(i%k==0)
  • 以下
    code
    可以工作:

    //to print prime number within range
    #include<stdio.h>
    #include<stdlib.h>
    #include<math.h>
    
    int main(){
        int i,upper,n,k,l,prime;
        int primes[300];
        primes[0]=2;
        printf("enter the upper limit:");
        scanf("%d",&upper);
        l=0;
        for(i=5;i=upper;i+=2){
            prime=0;
            for(k=0;k=l;k++){
                if(i%primes[k]==0){// if not prime set prime=0
                    prime==1;
                    break;
    }
    }
        if (prime==0){
            l++;
            primes[l]=i;//else store as array
    }
    }
    for (n=0;n=l;n++){
        printf("%d",primes[n]);}//print the elements in the array
    return 0;
    // end of the function}
    
    #包括
    #包括
    #包括
    #定义N 300
    int main(){
    内i,上k,l;
    整数素数[N];
    素数[0]=2;
    printf(“输入上限:”);
    scanf(“%d”及以上);
    如果(上部>N)
    返回-1;
    l=0;
    对于(i=3;i
    你观察到了什么?这看起来很可疑:
    用于(k=0;k=l;k++)
    用于(i=5;i=upper;i+=2){
    看起来很奇怪。你的意思是
    i
    for
    就像一个
    ,而
    -只要中间条件成立,它就可以运行。记住2和3是素数,所以你的结果可能不正确如果
    upper
    是16,或者任何偶数呢?你的外循环应该是
    for(i=3;i
    。为什么不打印所有素数?
    #include<stdio.h>
    #include<stdlib.h>
    #include<math.h>
    
    #define N 300
    
    int main(){
      int i,upper,k,l;
      int primes[N];
      primes[0] = 2;
      printf("enter the upper limit:");
      scanf("%d", &upper);
      if (upper > N)
        return -1;
      l = 0;
      for (i = 3; i < upper; i += 2) {
        for (k = 2; k != i; ++k)
          if(i%k == 0)
            break;
        if (k == i)
          primes[l++] = i;
      }
      for (i = 0; i != l; ++i)
        printf("%d\n", primes[i]);
      return 0;
    }