fork download
  1. /* Kadai042 */
  2. /* n 個の正の整数を arrayA[]に入力させ、これを1つおきに、arrayB[]には正順に、arrayC[]には
  3. 逆順に保存したのち、arrayB[]と arrayC[]の中身を順に表示するプログラムを作成 */
  4. /* 2026.7.6 H.Funayama */
  5. #include <stdio.h>
  6. #define DATAMAX 100
  7.  
  8. int main(void) {
  9. int arrayA[DATAMAX];
  10. int arrayB[DATAMAX];
  11. int arrayC[DATAMAX];
  12. int n = 0, number;
  13. int i, b = 0, c = 0;
  14.  
  15. printf("正の整数を入力してください(0で終了):\n");
  16.  
  17. scanf("%d", &number);
  18. while (number != 0) {
  19. arrayA[n++] = number;
  20.  
  21. if (n == DATAMAX) {
  22. printf("データ数の上限を超えました。\n");
  23. break;
  24. }
  25. scanf("%d", &number);
  26. }
  27.  
  28. /* arrayB*/
  29. for (i = 0; i < n; i += 2) {
  30. arrayB[b++] = arrayA[i];
  31. }
  32.  
  33. /* arrayC*/
  34. for (i = n - 1; i >= 0; i--) {
  35. if (i % 2 == 1) {
  36. arrayC[c++] = arrayA[i];
  37. }
  38. }
  39.  
  40. /*出力(B → C)*/
  41. for (i = 0; i < b; i++) {
  42. printf("%d ", arrayB[i]);
  43. }
  44. for (i = 0; i < c; i++) {
  45. printf("%d ", arrayC[i]);
  46. }
  47.  
  48. printf("\n終了します。\n");
  49.  
  50. return 0;
  51. }
Success #stdin #stdout 0.01s 5308KB
stdin
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 0
stdout
正の整数を入力してください(0で終了):
11 13 15 17 19 21 23 25 24 22 20 18 16 14 12 
終了します。