Ameba Ownd

アプリで簡単、無料ホームページ作成

演習の解答(7.配列)

2017.08.25 09:04

演習1 宣言文で整数型の配列dataを次の様に初期値を設定し、この8つの値の平均を表示するプログラムを作成せよ。平均の値は小数点以下第1位まで表示するものとする。

 int data[8]={59,45,33,49,25,89,29,77};

解答例を以下に示す。

演習2 宣言文で整数型の配列dataを次の様に初期値を設定し、この8つの値の最大値、最小値、平均を表示するプログラムを作成せよ。平均の値は小数点以下第1位まで表示するものとする。なお、この数値は100点満点のテストの数値と仮定する。

 int data[8]={59,45,33,49,25,89,29,77};

解答例を以下に2例示す。まずは、100点満点の点数なので最大の初期値を0点、最小の初期値を100点としてこれよりも小さい値を見つけて更新するという方法。

解答例2 最大、最小の初期値をdata[0]として、for文の繰り返しをi=0ではなくi=1から始める方法。この場合、平均を計算する際に用いる合計もdata[1]から足されてしまうので、先にsum=data[0]としておく(15行目)。

演習3 宣言文で整数型の配列dataを次の様に初期値を設定し、このデータをdata[7], data[6]..., data[0]の様に逆順に表示するプログラムを作成しなさい。

 int data[8]={59,45,33,49,25,89,29,77};

解答例

 このプログラムでは、for文のiの変化はi=0から7までとして表示のところで、data[7-i]とすることで、data[7]から表示する様にしている。このほかにfor文のiの変化を変える方法もある。12, 13行目を次のようにすればよい。
for(i=7;i>0;i--)
     printf("%d ",data[i]);

 ここで、i--はiを1ずつ減らす演算であり、i=i-1と書いてもよい。

演習4 宣言文で整数型の配列dataを次の様に初期値を設定し、表示例の様に偶数と奇数に分けて表示するプログラムを作成せよ。

 int data[8]={59,45,32,49,24,89,29,78};

 表示例

 奇数:59 45 49 89 29

 偶数:32 24 78

解答例を以下に示す。2行にわたって表示するので、先に奇数を表示させてから偶数を表示させるようになっている。