OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

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

  • すぐに回答を!
  • 質問No.103814
  • 閲覧数283
  • ありがとう数2
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 50% (34/68)

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

#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;
}
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.2
レベル10

ベストアンサー率 24% (47/191)

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

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

ではなく

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

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

その他の回答 (全1件)

  • 回答No.1
レベル8

ベストアンサー率 30% (19/63)

> return total / max; ここで、total を max で割っているから、平均値になるのでは? 素直に、 return total; でいいと思います。
> return total / max;

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

return total;

でいいと思います。
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ