fork download
  1. #include <stdio.h>
  2.  
  3. #define MAX 100
  4.  
  5. // 大域変数
  6. int size = 0;
  7. int seiseki[MAX];
  8.  
  9. // 関数プロトタイプ
  10. void record(int score);
  11. double average(void);
  12.  
  13. int main(void) {
  14. int num, i, score;
  15.  
  16. printf("学生の人数を入力:");
  17. scanf("%d", &num);
  18.  
  19. for (i = 0; i < num; i++) {
  20. printf("%d人目の点数を入力:", i + 1);
  21. scanf("%d", &score);
  22. record(score);
  23. }
  24.  
  25. // 学生の人数と点数を表示
  26. printf("\n--- 成績一覧 ---\n");
  27. printf("入力された学生の人数:%d人\n", size);
  28. for (i = 0; i < size; i++) {
  29. printf("%d人目:%d点\n", i + 1, seiseki[i]);
  30. }
  31.  
  32. printf("平均点:%.2f\n", average());
  33.  
  34. return 0;
  35. }
  36.  
  37. // 点数を記録し、人数を更新
  38. void record(int score) {
  39. if (size < MAX) {
  40. seiseki[size] = score;
  41. size++;
  42. } else {
  43. printf("これ以上入力できません(最大 %d 件)\n", MAX);
  44. }
  45. }
  46.  
  47. // 平均を計算
  48. double average(void) {
  49. int sum = 0;
  50. for (int i = 0; i < size; i++) {
  51. sum += seiseki[i];
  52. }
  53. return size > 0 ? (double)sum / size : 0.0;
  54. }
Success #stdin #stdout 0.01s 5288KB
stdin
2 3 4
stdout
学生の人数を入力:1人目の点数を入力:2人目の点数を入力:
--- 成績一覧 ---
入力された学生の人数:2人
1人目:3点
2人目:4点
平均点:3.50