fork download
  1. // 課題042
  2. //n個の正の整数を arrayA[]に入力させ、これを1つおきに、arrayB[]には正順に、arrayC[]には
  3. //逆順に保存したのち、arrayB[]と arrayC[]の中身を順に表示するプログラム
  4. // 2026.07.03 24A2021 伊藤宗兼
  5.  
  6. #include <stdio.h>
  7. #define DATAMAX 20//仮に20と置く
  8. int main(void) {
  9. int n; //入力されたデータの数
  10. int number; // 入力されたデータ
  11. int arrayA[DATAMAX]; // 入力されたデータを格納する配列
  12. int arrayB[DATAMAX]; // 正順に並べ替えた配列
  13. int arrayC[DATAMAX];//逆順に並べ替えた配列
  14. int i, j;
  15.  
  16. // n 個のデータを入力してもらい、arrayA[]に格納---------------------------------
  17. printf("好きな正の整数をいくつか入力してください。\n ");
  18. printf("終了するときはゼロを入力してください\n ");
  19. n = 0;
  20. scanf("%d", &number);
  21.  
  22. while (number != 0) {
  23. arrayA[n++] = number;
  24. if (n == DATAMAX) {
  25. printf("データ数の上限%d を越えました。\n", DATAMAX);
  26. break;
  27. }
  28. scanf("%d", &number);
  29. }
  30. //入力された整数の数nが、偶数番とした時の表示させ方-------------------------
  31. if (n % 2 == 0) {
  32. for (i = 0; i < n; i = i + 2) {// arrayA[]を一つおきで正順に、arrayB[]に格納
  33. arrayB[i] = arrayA[i];
  34. }
  35.  
  36. for (j = 0; j < n; j = j + 2) {// arrayA[]を一つおきに逆順に、arrayC[]に格納
  37. arrayC[j] = arrayA[(n - 1) - j];
  38. }
  39. // arrayB[]とarrayC[]を表示 ----------------------------------------------------
  40. for (i = 0; i < n; i = i + 2) {
  41. printf("%d ", arrayB[i]);
  42. }
  43. for (j = 0; j < n; j = j + 2) {
  44. printf("%d ", arrayC[j]);
  45. }
  46. }
  47. //入力された整数の数nが、奇数番とした時の表示させ方-------------------------
  48. else {
  49. for (i = 0; i < n; i = i + 2) {// arrayA[]を一つおきで正順に、arrayB[]に格納
  50. arrayB[i] = arrayA[i];
  51. }
  52.  
  53. for (j = 1; j < n; j = j + 2) {// arrayA[]を一つおきに逆順に、arrayC[]に格納
  54. arrayC[j] = arrayA[(n - 1) - j];
  55. }
  56. // arrayB[]とarrayC[]を表示 ----------------------------------------------------
  57. for (i = 0; i < n; i = i + 2) {
  58. printf("%d ", arrayB[i]);
  59. }
  60. for (j = 1; j < n; j = j + 2) {
  61. printf("%d ", arrayC[j]);
  62. }
  63. }
  64. printf("\n");
  65. printf("終了します。\n");
  66. return 0;
  67. }
Success #stdin #stdout 0s 5320KB
stdin
11 12 13 14 15 16 17 18 19 20 21 22 23 24  0
stdout
好きな正の整数をいくつか入力してください。
 終了するときはゼロを入力してください
 11 13 15 17 19 21 23 24 22 20 18 16 14 12 
終了します。