fork download
  1. #include <stdio.h>
  2. int score_list[100]; //最大100個までの点数を格納する配列
  3. int position = 0;
  4. //score_listに現在何番目まで格納されているかを示す変数
  5.  
  6. void record(int score){
  7. score_list[position]=score;
  8. position++;
  9. // scoreをscore_listに格納し、positionを更新
  10. }
  11. double average(){
  12. int k;
  13. double sum=0;
  14. double f;
  15. for(k=0;position>=k;k++){
  16. sum+=score_list[k];
  17. f=sum/position;
  18. }
  19. return f;
  20. // score_listに格納されている点数の平均を計算
  21. }
  22. double cond_average(int a,int b){
  23. int u=0,k;
  24. double sum=0,p;
  25. for(k=0;position>=k;k++){
  26. if((a<=score_list[k])&&(score_list[k]<b)){
  27. sum+=score_list[k];
  28.  
  29. u++;
  30. p=sum/u;
  31. }
  32. }
  33. return p;
  34. }
  35. int main(void){
  36. int n, i, score,a,b;
  37. printf("点数の個数を入力してください。(最大100)\n");
  38. scanf("%d", &n);
  39. printf("%d個の点数を入力してください。\n", n);
  40. for(i=0;i<n;i++){
  41. scanf("%d", &score);
  42. printf("%d人目:%d点\n", i+1, score);
  43. record(score);
  44. }
  45. printf("平均点:%lf点\n", average());
  46. printf("aとbの値を入力してください。\n");
  47. scanf("%d",&a);
  48. printf("%d\n",a);
  49. scanf("%d",&b);
  50. printf("%d\n",b);
  51. printf("%d点以上%d点未満の人の平均点は%lf点です。",a,b,cond_average(a,b));
  52. return 0;
  53. }
Success #stdin #stdout 0.01s 5284KB
stdin
5
10
20
30
40
23
20
50
stdout
点数の個数を入力してください。(最大100)
5個の点数を入力してください。
1人目:10点
2人目:20点
3人目:30点
4人目:40点
5人目:23点
平均点:24.600000点
aとbの値を入力してください。
20
50
20点以上50点未満の人の平均点は28.250000点です。