最新閲覧日:

キーから入力したデータを配列に入力した後、その和を求めるプログラムを作成したいのですが、プログラミング初心者の私にはさっぱりわかりません。
和を求めたいのに平均値が出てきてしまいます。
どこが間違っているのか教えてください。

#include <stdio.h>

float data[5];

float total(int max);

void main(void)
{
int cnt = 0;
float d;

printf("please input a data: ");
scanf("%f", &d);

while((cnt < 5) && (d > 0.0))
{
data[cnt] = d;
cnt++;
printf("please input a data: ");
scanf("%f", &d);
}

printf("total data: %5.2f\n", total(cnt));
}

float total(int max)
{
int i;
float total = 0.0;

for(i = 0; i < max; i++)
{
total += data[i];
}
return total / max;
}

A 回答 (2件)

最後の


return total / max;
で平均値を出してしまっています。ここを
return total;
とすればいいです。

ついでですが、main関数は
void main(void){
..
}

ではなく

int main(void){
..
return 0;
}

として、OSに正常終了を知らせたほうがよいです。
    • good
    • 0

> return total / max;



ここで、total を max で割っているから、平均値になるのでは?
素直に、

return total;

でいいと思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード


このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ