5人の得点の平均点を出す。
以下、失敗例。
#include <stdio.h> float avg(int t[]); float avg(int t[]){ int sum; for(int i=0;i<5;i++){ sum += t[i]; } return sum/5.0; } int main (void) { printf("5人の点数を入力してください"); int test[5]; for(int i=0;i<5;i++){ scanf("%d",test[i]); } float ans; ans = avg(test[]); printf("5人の平均は%d点です。"); return 0; }
この2点が問題。
(1)scanfの仕様に関する知識不足
scanf("%d",&test[i])
scanfの用法は
scanf("変換仕様"、"&変数")
例えば、scanf("%d",&num)
(2)配列を引数として用いるときのルール
ans = avg(test);
引数として配列を使うときは、実引数として配列名を渡す。
配列を関数に渡すときは、先頭要素のアドレスを渡すことになるので
参照渡しで渡していることになる。