配列のアルゴリズム
CoddyのCジャーニー「Fundamentals」セクションの一部 — レッスン 59/63。
配列アルゴリズムは、配列データを操作するための不可欠な手法です。一般的な配列操作について学んでいきましょう。
配列内の最大値を見つける:
// 配列を初期化する
int numbers[] = {4, 9, 2, 7, 5};
// 最初の要素を最大値の初期値に設定する
int max = numbers[0];// 他の要素と比較する
for (int i = 1; i < 5; i++) {
if (numbers[i] > max) {
max = numbers[i];
}
}
// これで max には最大値 (9) が格納されます最小値を見つける方法も同様です:
// 最初の要素を初期の最小値に設定する
int min = numbers[0];
// 他の要素と比較する
for (int i = 1; i < 5; i++) {
if (numbers[i] < min) {
min = numbers[i];
}
}
// これで min には最小値 (2) が格納される配列内のすべての要素の合計を求める:
int sum = 0;
// 各要素を合計に加算します
for (int i = 0; i < 5; i++) {
sum += numbers[i];
}
// これでsumには合計(27)が含まれますチャレンジ
簡単整数配列内のすべての要素の平均を計算する findAverage という名前の関数を作成してください。
この関数は以下のことを行う必要があります:
- 整数配列とそのサイズをパラメータとして受け取る
- すべての要素の合計を計算する
- 合計を要素数で割り、平均を求める
- 平均を float 型として返す
平均を計算した後、次のコードを使用して結果を小数点以下ちょうど2桁で出力してください: printf("Average: %.2f\n", average);
チートシート
最大値、最小値、および合計値を求めるための一般的な配列アルゴリズム:
最大値を求める:
int max = numbers[0];
for (int i = 1; i < size; i++) {
if (numbers[i] > max) {
max = numbers[i];
}
}最小値を求める:
int min = numbers[0];
for (int i = 1; i < size; i++) {
if (numbers[i] < min) {
min = numbers[i];
}
}すべての要素を合計する:
int sum = 0;
for (int i = 0; i < size; i++) {
sum += numbers[i];
}浮動小数点数を小数点以下2桁で表示するには: printf("Average: %.2f\n", average);
自分で試してみよう
#include <stdio.h>
// ここに `findAverage` 関数を記述してください
int main() {
int size;
scanf("%d", &size);
int numbers[size];
// 配列の要素を読み取ります
for (int i = 0; i < size; i++) {
scanf("%d", &numbers[i]);
}
// 関数を呼び出して結果を表示します
float average = findAverage(numbers, size);
printf("Average: %.2f\n", average);
return 0;
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。