C - взять определенное содержимое целочисленного массива и поместить его в другой массив - PullRequest
0 голосов
/ 03 декабря 2018

Итак, у меня уже есть большой массив с именем allintegersarray.Он был создан путем взятия двумерного массива с именем matrix, где строки - это первые, а столбцы - вторые.Я знаю, как найти простые числа массива 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 голосов
/ 03 декабря 2018

просто измените 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.надеюсь, это поможет, удачи.

...