こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

配列の和を求めるプログラム

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

#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;
}

投稿日時 - 2001-07-13 15:40:04

QNo.103814

すぐに回答ほしいです

質問者が選んだベストアンサー

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

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

ではなく

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

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

投稿日時 - 2001-07-13 16:00:00

ANo.2

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

2nd

> return total / max;

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

return total;

でいいと思います。

投稿日時 - 2001-07-13 15:54:15

あなたにオススメの質問