fork download
  1. #include<stdio.h>
  2. #define n 7
  3. #define m 12
  4.  
  5. int main()
  6. {
  7. char kamoku[m][n] = {"科目", "国語", "数学", "理科", "社会", "英語", "合計"};
  8. char namae[m][n] = {"科目", "太郎", "次郎", "三郎", "四郎", "五郎", "花子", "春子", "夏子", "秋子", "冬子", "平均"};
  9. double seiseki[m][m] = {{0, 0, 0, 0, 0, 0}, {0, 74, 93, 80, 73, 99}, {0, 78, 82, 78, 82, 74}, {0, 94, 68, 61, 71, 87}, {0, 82, 76, 96, 68, 78}, {0, 74, 79, 70, 61, 78}, {0, 89, 70, 70, 60, 72}, {0, 84, 96, 65, 75, 85}, {0, 91, 83, 89, 66, 75}, {0, 80, 83, 75, 71, 64}, {0, 86, 96, 93, 70, 62}};
  10.  
  11. int i, j, k;
  12.  
  13. printf("┌───┬──┬──┬──┬──┬──┬───┐\n");//一行目,科目名が3文字なのでそれぞれにスペースを入れて罫線をそろえる!
  14. printf("│");//二行目
  15. printf("科目名");
  16.  
  17. for (i = 1; i < n - 1; ++i)
  18. {
  19. printf("│%s", kamoku[i]);
  20. }
  21.  
  22. printf("│ %s │\n", kamoku[6]);
  23. printf("├───┼──┼──┼──┼──┼──┼───┤\n");//三行目
  24.  
  25. for (i = 1; i < 11; i++) //成績表示
  26. {
  27. printf("│ %s", namae[i]);
  28.  
  29. for (j = 1; j < n - 1; j++)
  30. {
  31. printf("│%4.0f", seiseki[i][j]);
  32. seiseki[i][0] += seiseki[i][j]; //横計
  33. }
  34.  
  35. printf("│%6.0f│\n", seiseki[i][0]);
  36. printf("├───┼──┼──┼──┼──┼──┼───┤\n");//三行目をコピー
  37. }
  38.  
  39. printf("│ %s", namae[11]);
  40.  
  41. for (j = 1; j < n - 1; j++)
  42. {
  43. for (i = 1; i < m - 1; i++)
  44. {
  45. seiseki[0][j] += seiseki[i][j]; //縦計
  46. }
  47.  
  48. printf("│%4.1f", seiseki[0][j] / (m - 2)); //科目平均
  49. seiseki[0][0] += seiseki[0][j]; //総点
  50. }
  51.  
  52. printf("│%6.1f│\n", seiseki[0][0] / (m - 2)); //合計平均
  53. printf("└───┴──┴──┴──┴──┴──┴───┘\n");
  54. int x;
  55. int v[m];
  56.  
  57. for (i = 0; i < m; i++)
  58. {
  59. v[i] = i;
  60. }
  61.  
  62. for (j = 1; j < n - 1; j++)
  63. {
  64. printf("%s\n", kamoku[j]);
  65. printf("順位 名前 成績\n");
  66. int l = 1;
  67.  
  68. for (i = 1; i <= m - 2; i++)
  69. {
  70. for (k = m - 2; k > i; k--)
  71. {
  72. if (seiseki[v[k - 1]][j] < seiseki[v[k]][j])
  73. {
  74. x = v[k - 1];
  75. v[k - 1] = v[k];
  76. v[k] = x;
  77. }
  78. }
  79.  
  80. if (i > 1)
  81. {
  82. if (seiseki[v[i - 1]][j] != seiseki[v[i]][j])
  83. {
  84. l = i;
  85. }
  86. }
  87.  
  88. printf("%4d %2s %4.0f\n", l, namae[v[i]], seiseki[v[i]][j]);
  89. }
  90. }
  91.  
  92. return 0;
  93. }
  94.  
Success #stdin #stdout 0s 1836KB
stdin
Standard input is empty
stdout
┌───┬──┬──┬──┬──┬──┬───┐
│科目名│国語│数学│理科│社会│英語│ 合計 │
├───┼──┼──┼──┼──┼──┼───┤
│ 太郎│  74│  93│  80│  73│  99│   419│
├───┼──┼──┼──┼──┼──┼───┤
│ 次郎│  78│  82│  78│  82│  74│   394│
├───┼──┼──┼──┼──┼──┼───┤
│ 三郎│  94│  68│  61│  71│  87│   381│
├───┼──┼──┼──┼──┼──┼───┤
│ 四郎│  82│  76│  96│  68│  78│   400│
├───┼──┼──┼──┼──┼──┼───┤
│ 五郎│  74│  79│  70│  61│  78│   362│
├───┼──┼──┼──┼──┼──┼───┤
│ 花子│  89│  70│  70│  60│  72│   361│
├───┼──┼──┼──┼──┼──┼───┤
│ 春子│  84│  96│  65│  75│  85│   405│
├───┼──┼──┼──┼──┼──┼───┤
│ 夏子│  91│  83│  89│  66│  75│   404│
├───┼──┼──┼──┼──┼──┼───┤
│ 秋子│  80│  83│  75│  71│  64│   373│
├───┼──┼──┼──┼──┼──┼───┤
│ 冬子│  86│  96│  93│  70│  62│   407│
├───┼──┼──┼──┼──┼──┼───┤
│ 平均│83.2│82.6│77.7│69.7│77.4│ 390.6│
└───┴──┴──┴──┴──┴──┴───┘
国語
順位 名前 成績
   1  三郎    94
   2  夏子    91
   3  花子    89
   4  冬子    86
   5  春子    84
   6  四郎    82
   7  秋子    80
   8  次郎    78
   9  太郎    74
   9  五郎    74
数学
順位 名前 成績
   1  冬子    96
   1  春子    96
   3  太郎    93
   4  夏子    83
   4  秋子    83
   6  次郎    82
   7  五郎    79
   8  四郎    76
   9  花子    70
  10  三郎    68
理科
順位 名前 成績
   1  四郎    96
   2  冬子    93
   3  夏子    89
   4  太郎    80
   5  次郎    78
   6  秋子    75
   7  五郎    70
   7  花子    70
   9  春子    65
  10  三郎    61
社会
順位 名前 成績
   1  次郎    82
   2  春子    75
   3  太郎    73
   4  秋子    71
   4  三郎    71
   6  冬子    70
   7  四郎    68
   8  夏子    66
   9  五郎    61
  10  花子    60
英語
順位 名前 成績
   1  太郎    99
   2  三郎    87
   3  春子    85
   4  四郎    78
   4  五郎    78
   6  夏子    75
   7  次郎    74
   8  花子    72
   9  秋子    64
  10  冬子    62