#1
by 劉578 » 3年前
適当な名前でint型の配列を準備し,キーボードから上限100までの整数を6つ入力して6つの数字の合計,平均,最大,最小を表示する(main関数側で表示する)プログラムを作成したいです.このとき,自作の関数側を次のような名前と仮引数とするとき,main関数およびcall関数の中身を完成させなさい.(平均は少数が出てくるはずであるが,整数値でよい)call関数は,配列を受取り,合計,平均,最大,最小を求めることを行う.ヒント:sum, ave, max, minの初期値をどのようにするか?という問題です。下のを使うという指示が出ています。
void call(int n, int a[ ], int *sum, int *ave, int *max, int *min)
やってみましたが何がダメなのかわかりません。添削お願いします。
コード:
#include<stdio.h>
void call(int n, int a[], int *sum,int *ave, int *max, int *min);
int b,c,d,e,f,g,n;
int a[]={b,c,d,e,f,g};
int main(void)
{
printf("100までの整数を6つ入力してください");
fflush(stdout);
scanf("%d%d%d%d%d%d",&b,&c,&d,&e,&f,&g);
call(n, a[], &sum, &ave, &max, &min);
printf("合計:%d 平均:%d 最大:%d 最小:%d",sum, ave, max, min);
}
void call(int n, int a[], int *sum,int *ave, int *max, int *min)
{
*sum=b+c+d+e+f;
*ave=*sum/5;
for(n=0;n<6;n++){
if (a[n] > *max){
*max =a[n];
}
for(n=0;n<6;n++){
if(a[n] > *min){
*min=a[n];
}
}
}
}
適当な名前でint型の配列を準備し,キーボードから上限100までの整数を6つ入力して6つの数字の合計,平均,最大,最小を表示する(main関数側で表示する)プログラムを作成したいです.このとき,自作の関数側を次のような名前と仮引数とするとき,main関数およびcall関数の中身を完成させなさい.(平均は少数が出てくるはずであるが,整数値でよい)call関数は,配列を受取り,合計,平均,最大,最小を求めることを行う.ヒント:sum, ave, max, minの初期値をどのようにするか?という問題です。下のを使うという指示が出ています。
void call(int n, int a[ ], int *sum, int *ave, int *max, int *min)
やってみましたが何がダメなのかわかりません。添削お願いします。
[code]
#include<stdio.h>
void call(int n, int a[], int *sum,int *ave, int *max, int *min);
int b,c,d,e,f,g,n;
int a[]={b,c,d,e,f,g};
int main(void)
{
printf("100までの整数を6つ入力してください");
fflush(stdout);
scanf("%d%d%d%d%d%d",&b,&c,&d,&e,&f,&g);
call(n, a[], &sum, &ave, &max, &min);
printf("合計:%d 平均:%d 最大:%d 最小:%d",sum, ave, max, min);
}
void call(int n, int a[], int *sum,int *ave, int *max, int *min)
{
*sum=b+c+d+e+f;
*ave=*sum/5;
for(n=0;n<6;n++){
if (a[n] > *max){
*max =a[n];
}
for(n=0;n<6;n++){
if(a[n] > *min){
*min=a[n];
}
}
}
}
[/code]