配列の関数への引渡し
Posted: 2010年8月31日(火) 23:56
重要課題 11..1
要素数が指定された1次元配列内の各要素の平均値を出力するプログラムを、引数 として指定された配列とその要素数から平均値を計算する関数
double average(int array[/url], int size)
を用いて作れ。配列の各要素は整数とし、配列の要素数の最大数は512とする。
% ./arrayAverage
input size: 4
input u[0]: 9
input u[1]: 20
input u[2]: 4
input u[3]: 11
average is 11.000000
%
という課題がわかりません。
自分が書いたソースがこれです。
/* ここからコピー */
#include <stdio.h>
# define BUFFER_SIZE (256)
int get_int(void)
{
char buf[BUFFER_SIZE];
fgets(buf, BUFFER_SIZE, stdin);
return atoi(buf);
}
/* ここまでコピー */
//平均を
double average(int aray[/url],int size)
{
int i;
int b;
double result;
b=0;
for(i=0;i<size;i++)
{
b += aray;
}
result = b / size;
return result;
}
int main()
{
//出力
int p[512],number,suuzi;
printf("input size:");
number = get_int();
for(suuzi=0;suuzi<number;suuzi++)
{
printf("input u[%d]:",suuzi);
p[suuzi] = get_int();
}
printf ("average is %f \n",average(p,number));
return 0;
}
//ここまで
これをコンパイルすると正しい平均値になりません。何がまちがっているのでしょうか?
要素数が指定された1次元配列内の各要素の平均値を出力するプログラムを、引数 として指定された配列とその要素数から平均値を計算する関数
double average(int array[/url], int size)
を用いて作れ。配列の各要素は整数とし、配列の要素数の最大数は512とする。
% ./arrayAverage
input size: 4
input u[0]: 9
input u[1]: 20
input u[2]: 4
input u[3]: 11
average is 11.000000
%
という課題がわかりません。
自分が書いたソースがこれです。
/* ここからコピー */
#include <stdio.h>
# define BUFFER_SIZE (256)
int get_int(void)
{
char buf[BUFFER_SIZE];
fgets(buf, BUFFER_SIZE, stdin);
return atoi(buf);
}
/* ここまでコピー */
//平均を
double average(int aray[/url],int size)
{
int i;
int b;
double result;
b=0;
for(i=0;i<size;i++)
{
b += aray;
}
result = b / size;
return result;
}
int main()
{
//出力
int p[512],number,suuzi;
printf("input size:");
number = get_int();
for(suuzi=0;suuzi<number;suuzi++)
{
printf("input u[%d]:",suuzi);
p[suuzi] = get_int();
}
printf ("average is %f \n",average(p,number));
return 0;
}
//ここまで
これをコンパイルすると正しい平均値になりません。何がまちがっているのでしょうか?