回答受付中の質問
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;
}
-
- 質問日時:
- 2012/6/28 21:20:55
-
- 残り時間:
- 6日間
-
- 回答数:
- 2
-
- お礼:
- 知恵コイン
- 50枚
-
- 閲覧数:
- 65
-
- ソーシャルブックマークへ投稿:
- Yahoo!ブックマークへ投稿
- はてなブックマークへ投稿
- (ソーシャルブックマークとは)
回答
(2件中1〜2件)
- 並べ替え:回答日時の
- 新しい順
- |
- 古い順
#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;
}
- 違反報告
- 回答日時:2012/6/28 21:38:18