C-取整数数组的特定内容并将其放在另一个数组中

时间:2018-12-02 22:43:25

标签: c arrays integer primes

因此,我已经创建了一个名为allintegersarray的大型数组。它是通过采用称为矩阵的2d数组创建的,其中第一个是行,第二个是列。我知道如何找到allintegersarray数组的质数,但是我迷失于如何将这些质数复制到它们自己的数组中,我将其初始化为primenumbersarray。这是一些代码; 第一个功能:

int is_prime(int num)
{
    if (num <= 1) return 0;{
        if (num % 2 == 0 && num > 2) return 0;{
            for(int i = 3; i < num / 2; i+= 2)
            {
                if (num % i == 0)
                    return 0;
            }
            return 1;
        }
    }
}

和第二个功能:

void fillPrime(int A[TOTAL_ROWS][TOTAL_COLUMNS], int rows, int columns){
    int i,j;
    for(i = 0; i < rows; i++){
        for(j = 0 ;j < columns; j++){
             if(is_prime(A[i][j])){
                  allnumbersarray[arraylength++] = A[i][j];
              }
         }
      }
    ////////Below, this for statement will print the prime numbers within the array, 
but instead of doing that, I'd like it to fill the array called primenumbersarray////////

    printf("Prime numbers in all numbers array: \n");
            for (i = 0; i < arraylength; i += 2){
                printf( "%d\n", allnumbersarray[i]) ;
        }
}

1 个答案:

答案 0 :(得分:0)

只需将fillPrime更改为类似的内容

void fillPrime(int A[TOTAL_ROWS][TOTAL_COLUMNS], int rows, int columns){
int i,j; int a=0;
for(i = 0; i < rows; i++){
    for(j = 0 ;j < columns; j++){
         if(is_prime(A[i][j])){
              primenumbersarray[a] = A[i][j];a++;
          }
     }
  }

据我所知,您想将质数保存到称为primenumbersarray的数组中,并且所有数字都已保存在称为A的2D数组(矩阵)中。我希望这会有所帮助,祝你好运。