ID非公開さん
2022/1/19 19:25
1回答
C言語についての質問です。 指定した人数分の年齢をキーボード入力すると、その平均年齢と、予想値との差を表示してくれるプログラムを作成してください。条件や実行例は順に示します。
C言語についての質問です。 指定した人数分の年齢をキーボード入力すると、その平均年齢と、予想値との差を表示してくれるプログラムを作成してください。条件や実行例は順に示します。 ・ 人数は整数型の変数nin、予想値は実数型の変数yosouに代入する。 ・ 年齢は要素数10の整数型配列ageにそれぞれ格納する。 ・ 平均年齢の予想値は実数型の変数heikinに代入する。 ・ その他の変数は必要に応じて自由に宣言、使用する。 ・ 10人より多い人数を入力した場合、if文を使って下のように1回だけ再入力をさせる。 という問題なのですが、うまくできず困っています。間違っている部分を教えて頂けないでしょうか。下記が書いたプログラムです。よろしくお願いいたします。 #include <stdio.h> void check(int *n); double ave_age(int *a, int n); int sa(int x, int y); int main(void) { int nin, i; int age[10]; double heikin,yosou,sa,ave; int n1,n2; printf("人数を入力してください:" ); scanf("%d", &nin); check(&nin); for (i=0; i<nin; i++) { printf("%d人目の年齢を入力してください:", i+1); scanf("%d", &age[i]); } printf("平均年齢を予想してください。\n:"); scanf("%d\n",&yosou); printf("---- 結果を表示します -----\n"); for (i=0; i<nin; i++) { printf("%d人目は%d歳です。\n", i+1, age[i]); } printf("平均年齢%.2f才です。\n", ave_age(age,nin)); printf("予想との差は%dです。\n", double(sa)); return 0; } double ave_age(int *a, int n) { int i, sum; double ave,sa; sum = 0; for (i=0; i<n; i++) { sum += a[i]; } ave = (double)sum / n; return ave; } void check(int *n) { if (*n > 10) { *n = 10; printf("人数を10人に修正しました。\n"); } } int sa(int x, int y) { int val; val=x-y; return val; }