Learn-c-by-examples-program-to-divide-array-in-c

提供:Dev Guides
移動先:案内検索

配列を分割するプログラム

配列を2つに分割するには、少なくとも3つの配列変数が必要です。 連続した数字の配列を取り、その値を偶数と奇数の値に基づいて2つの異なる変数に格納します。

アルゴリズム

最初に、このプログラムの段階的な手順を確認してみましょう-

START
   Step 1 → Take three array variables A, E, and O
   Step 2 → Store continuous values in A
   Step 3 → Loop for each value of A
   Step 4 → If A[n] is even then store in E array
   Step 5 → If A[n] is odd then store in E array
STOP

疑似コード

このアルゴリズムの擬似コードを見てみましょう-

procedure divide_array(A)

   FOR EACH value in A DO
      IF A[n] is even
         save in E
      ELSE
         save in O
      END IF
   END FOR

end procedure

実装

上記の派生擬似コードの実装は次のとおりです-

#include <stdio.h>

int main() {
   int array[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
   int even[10], odd[10];
   int loop, e, d;

   e = d = 0;

   for(loop = 0; loop < 10; loop++) {
      if(array[loop]%2 == 0) {
         even[e] = array[loop];
         e++;
      } else {
         odd[d] = array[loop];
         d++;
      }
   }

   printf(" original -> ");

   for(loop = 0; loop < 10; loop++)
      printf(" %d", array[loop]);

   printf("\n even -> ");

   for(loop = 0; loop < e; loop++)
      printf(" %d", even[loop]);

   printf("\n odd -> ");

   for(loop = 0; loop < d; loop++)
      printf(" %d", odd[loop]);

   return 0;
}

出力は次のようになります-

 original ->  0 1 2 3 4 5 6 7 8 9
 even ->  0 2 4 6 8
 odd ->  1 3 5 7 9