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. // main関数(変更しないものとする)
  14. int main(void) {
  15. int num, i, score;
  16.  
  17. printf("学生の人数を入力\n");
  18. scanf("%d", &num);
  19.  
  20. for (i = 0; i < num; i++) {
  21. printf("%d人目の点数を入力\n", i + 1);
  22. scanf("%d", &score);
  23. record(score);
  24. }
  25.  
  26. printf("平均点:%.2f\n", average());
  27.  
  28. return 0;
  29. }
  30.  
  31. // 点数を配列に記録し、sizeを更新
  32. void record(int score) {
  33. if (size < MAX) {
  34. seiseki[size] = score;
  35. size++;
  36. } else {
  37. printf("エラー:配列がいっぱいです\n");
  38. }
  39. }
  40.  
  41. // 現在の点数の平均を計算
  42. double average(void) {
  43. int sum = 0;
  44. for (int i = 0; i < size; i++) {
  45. sum += seiseki[i];
  46. }
  47. return size > 0 ? (double)sum / size : 0.0;
  48. }
Success #stdin #stdout 0s 5316KB
stdin
3 4 5 6
stdout
学生の人数を入力
1人目の点数を入力
2人目の点数を入力
3人目の点数を入力
平均点:5.00