配列の要素数を逆順にする関数を作りたいです。以下のようなコードを書いたのですが、0~9の順で表示されてしまいます。どこが間違っているか教えていただきたいです。よろしくお願いいたします。
c
1#include <stdio.h> 2#define ARRAY_SIZE 10 3 4void reverse(int dt[], int size); 5 6void reverse(int dt[], int size) { 7 8 int temp = 0; 9 int temp1 = 0; 10 11 for (int j = size - 1; j == 1; j--) {//dt[9]に0が入っているので、dt[7]dとt[8]、dt[7]とdt[6]のように下から値を交換。 12 13 for (int i = 0; i < size; i++) {//隣り合う配列同士の値を交換。dt[0]とdt[1]、dt[1]とdt[2]… 14 temp = dt[i]; 15 dt[i] = dt[i + 1]; 16 dt[i + 1] = temp; 17 } 18 19 temp1 = dt[j - 1]; 20 dt[j - 1] = dt[j]; 21 dt[j] = temp1; 22 23 24 } 25 26} 27 28int main(void) 29{ 30 int dt[ARRAY_SIZE] = { 1 }; 31 32 for (int i = 0; i < ARRAY_SIZE; i++) { 33 dt[i] = i; 34 } 35 36 reverse(dt, ARRAY_SIZE); 37 38 for (int i = 0; i < ARRAY_SIZE; i++) { 39 printf("%d\n", dt[i]); 40 } 41 42 return 0; 43}
回答4件
あなたの回答
tips
プレビュー