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