ページ 11

C言語の平均についてです

Posted: 2011年7月18日(月) 20:49
by 日本
最大値最少値平均を求めたいんですが平均値が出ませんint ave_ofの部分が間違ってるんですが方わかる方おねがいします
実行結果張りたいんですが張り方わからないので省略してしまいました すいません
#include <stdio.h>

#define NUMBER 5

/* 要素数noの配列vcの最大値を返す*/
int max_of(int vc[],int no)


{
int i;
int max =vc[0];
for(i=1; i<no; i++)
if(vc > max)
max = vc;

return(max);


}
int min_of(int vc[],int no)


{
int i;
int min =vc[0];
for(i=1; i<no; i++)
if(vc < min)
min = vc;

return(min);


}
int ave_of(int vc[],int no)

{
int i;
int ave =vc[0];
for(i=1; i<no; i++)
ave =vc/5;
return(ave);

}

int main(void)
{
int i;
int koku[NUMBER];
int mat[NUMBER];
int eng[NUMBER];

int max_k,max_e, max_m;
int min_k,min_e, min_m;
int ave_k,ave_e, ave_m;

printf("%d人の点数を入力してください\n",NUMBER);
for(i=0; i<NUMBER; i++){
printf("[%d] 国語:",i+1); scanf("%d",&koku);
printf(" 数学:"); scanf("%d",&mat);
printf(" 英語:"); scanf("%d",&eng);
}
max_k =max_of(koku,NUMBER);
max_e =max_of(eng,NUMBER);
max_m =max_of(mat,NUMBER);

printf("国語の最高得点=%d\n",max_k);
printf("数学の最高得点=%d\n",max_m);
printf("英語の最高得点=%d\n",max_e);

min_k =min_of(koku,NUMBER);
min_e =min_of(eng,NUMBER);
min_m =min_of(mat,NUMBER);

printf("国語の最低得点=%d\n",min_k);
printf("数学の最低得点=%d\n",min_m);
printf("英語の最低得点=%d\n",min_e);



printf("国語の平均点=%d\n",ave_of);
printf("数学の平均点=%d\n",ave_of);
printf("英語の平均点=%d\n",ave_of);

Re: C言語の平均についてです

Posted: 2011年7月18日(月) 20:59
by box
平均点を手作業で計算するとき、どういう手順を踏みますか?
その手順を忠実にコード化するだけです。

Re: C言語の平均についてです

Posted: 2011年7月18日(月) 21:35
by non
合計は求められますか?
しかし、関数や配列を使って、最大最小を求めている人がする質問とは思えない。
最大や最小は他人が作ったプログラムですか?

Re: C言語の平均についてです

Posted: 2011年7月18日(月) 23:25
by 日本
nonさんこれは自分で作ったプログラムです。しかし、教科書を手本としてやっているのでまだ中身を完全に理解してません。
 関数が一つのプログラムならまだ理解できるのですが二つ三つ合わせないとできないプログラムだとこんがらがってしまします

Re: C言語の平均についてです

Posted: 2011年7月18日(月) 23:45
by box
日本 さんが書きました:  関数が一つのプログラムならまだ理解できるのですが二つ三つ合わせないとできないプログラムだとこんがらがってしまします
平均点を求める部分はそういうレベルの話ではないように見えます。
平均点を求めるための処理内容そのものがわかっていないように見えるんですが、いかがですか?

Re: C言語の平均についてです

Posted: 2011年7月19日(火) 12:05
by さかまき
関数max_of や min_ofはネット上に一字一句同じで存在します。
>最大や最小は他人が作ったプログラムですか?
に対しての答えとして
>これは自分で作ったプログラムです。
という事は私が検索して見つけたプログラム(2006年のもの)は
日本さんが作ったものという事になりますが、そうなのですか?

Re: C言語の平均についてです

Posted: 2011年7月19日(火) 15:40
by aquashooting
平均値を求めるには合計点数の総和(例えば100点+80点+90点=270点)とその人数(この場合は3)で割ると出てくるはずなのですが、これはmain関数だけで済む話なのではないかと思っています。ですからわざわざ関数を作らなくてもいい話なのではないのかと。

平均値を出す式は
(Aさんの国語の点数+Bさんの国語の点数+Cさんの国語の点数+・・・)/人数=平均値
というような感じです。これを基に実装すればうまくいくのではないかと思います。