// 課題042
//n個の正の整数を arrayA[]に入力させ、これを1つおきに、arrayB[]には正順に、arrayC[]には
//逆順に保存したのち、arrayB[]と arrayC[]の中身を順に表示するプログラム
//             2026.07.03 24A2021 伊藤宗兼

#include <stdio.h>
#define DATAMAX 20//仮に20と置く
int main(void) {
	int n; //入力されたデータの数 
	int number; // 入力されたデータ 
	int arrayA[DATAMAX]; // 入力されたデータを格納する配列
	int arrayB[DATAMAX]; // 正順に並べ替えた配列
	int arrayC[DATAMAX];//逆順に並べ替えた配列
	int i, j;

	// n 個のデータを入力してもらい、arrayA[]に格納---------------------------------
	printf("好きな正の整数をいくつか入力してください。\n ");
	printf("終了するときはゼロを入力してください\n ");
	n = 0;
	scanf("%d", &number);

	while (number != 0) {
		arrayA[n++] = number;
		if (n == DATAMAX) {
			printf("データ数の上限%d を越えました。\n", DATAMAX);
			break;
		}
		scanf("%d", &number);
	}
	//入力された整数の数nが、偶数番とした時の表示させ方-------------------------
	if (n  % 2 == 0) {
		for (i = 0; i < n; i = i + 2) {// arrayA[]を一つおきで正順に、arrayB[]に格納
			arrayB[i] = arrayA[i];
		}

		for (j = 0; j < n; j = j + 2) {// arrayA[]を一つおきに逆順に、arrayC[]に格納
			arrayC[j] = arrayA[(n - 1) - j];
		}
	// arrayB[]とarrayC[]を表示 ----------------------------------------------------
		for (i = 0; i < n; i = i + 2) {
			printf("%d ", arrayB[i]);
		}
		for (j = 0; j < n; j = j + 2) {
			printf("%d ", arrayC[j]);
		}
	}
	//入力された整数の数nが、奇数番とした時の表示させ方-------------------------
	else {
		for (i = 0; i < n; i = i + 2) {// arrayA[]を一つおきで正順に、arrayB[]に格納
			arrayB[i] = arrayA[i];
		}

		for (j = 1; j < n; j = j + 2) {// arrayA[]を一つおきに逆順に、arrayC[]に格納
			arrayC[j] = arrayA[(n - 1) - j];
		}
	// arrayB[]とarrayC[]を表示 ----------------------------------------------------
		for (i = 0; i < n; i = i + 2) {
			printf("%d ", arrayB[i]);
		}
		for (j = 1; j < n; j = j + 2) {
			printf("%d ", arrayC[j]);
		}
	}
	printf("\n");
	printf("終了します。\n");
	return 0;
}