Learn-c-by-examples-reverse-array-copy-in-c

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

Cで配列を逆コピーするプログラム

このプログラムは、配列の基本の1つを学習するのに役立ちます。 ある配列を別の配列にコピーしますが、逆にコピーします。

アルゴリズム

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

START
   Step 1 → Take two arrays A, B
   Step 2 → Store values in A
   Step 3 → Set count to sizeof(A)
   Step 4 → Loop for each value of A
   Step 5 → Copy A[loop] to B[count]
   Step 6 → Decrement count
   Step 7 → Display B
STOP

疑似コード

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

procedure reversecopy_array(A, B)

   SET index to 1
   Set count to sizeof(A)
   FOR EACH value in A DO
      B[count] = A[index]
      INCREMENT index
      DECREMENT count
   END FOR
   DISPLAY B

end procedure

実装

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

#include <stdio.h>

int main() {
   int original[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
   int copied[10];
   int loop, count;

   count = 9;

   for(loop = 0; loop < 10; loop++) {
      copied[count] = original[loop];
      count--;
   }

   printf("original -> copied \n");

   for(loop = 0; loop < 10; loop++) {
      printf("   %2d        %2d\n", original[loop], copied[loop]);
   }

   return 0;
}

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

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