ここから本文です

回答受付中の質問

C言語について

utbedさん

C言語について

以下の問題について質問します。

<問題>
10個の値を入力後,それらの平均値を表示するプログラムを作成せよ. ただし,平均値の計算には,平均値を計算するaverage関数を作成すること.
int average(int array[], int len)
array:データの入った配列
len:配列の大きさ

下に自分の書いたプログラムを書きます。
まだ作成途中なので、今後どのようにすればいいか教えてください。

<プログラム>

#include<stdio.h>

int average(int array[],int len)
{
int a[10],x;
x = 0;

for(len=0;len<=10;len++)
{
scanf("%d",a[len]);
x = x + a[len];
}
int result = x / len;

return result;

}


int main(void)
{
int y,a[10],k;


for(k=0;k<=10;k++)
{
scanf("%d",&a[k]);

}



y = average(a,10);
printf("average=%d",y);
getchar();
return 0;

}

違反報告

この質問に回答する

回答

(2件中1〜2件)

並べ替え:回答日時の
新しい順
古い順

 

maxairabuさん

#include<stdio.h>
double average(int [],int );//プロトタイプ宣言
int main(void)
{
int a[10];
int i;//カウンタ変数
double ave;//平均値


for(i=0;i<10;i++)
{
scanf("%d",&a[i]);

}



ave = average(a,10);
printf("average=%.1f",ave);//少数第一位まで
return 0;

}
double average(int array[],int len)
{
int sum;
sum = 0;
double result;//平均を求めるなら少数で
for(len=0;len<10;len++)
{

sum+=array[len];//合計求める
}
result = (double)sum / len;

return result;

}

実行例
10
5
6
4
8
6
12
5
6
5
average=6.7

  • 違反報告
  • 編集日時:2012/6/28 21:45:15
  • 回答日時:2012/6/28 21:42:47

ii3pvy63さん

修正例です。
平均を求めるならaverage関数の戻り値はdoubleが普通だと思いますが?

#include <stdio.h>

int average(int array[], int len) {
int sum = 0, i;
for (i = 0; i < len; i++) {
sum += array[i];
}
return sum / len;
}

int main(void) {
int a[10], i;

for (i = 0; i < 10; i++) {
scanf("%d", &a[i]);
}
printf("average=%d", average(a,10));
getchar();

return 0;
}

この質問に回答する

PR
知恵ノートとは?

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。

お客様自身の責任と判断で、ご利用ください。

話題のキーワード

[カテゴリ:C言語関連]

ただいまの回答者

00時35分現在

3476
人が回答!!

1時間以内に6,516件の回答が寄せられています。

>>回答ひろばに行く


知恵コレに追加する

閉じる

知恵コレクションをするID/ニックネームを選択し、「追加する」ボタンを押してください。
※知恵コレクションに追加された質問や知恵ノートは選択されたID/ニックネームのMy知恵袋で確認できます。

ほかのID/ニックネームで利用登録する