はじめに
プログラミング初心者にとって、C言語での平均値の算出は一見難しそうなイメージがあるかもしれません。
しかし、実際にはコードを理解し、手順を追えば誰でも可能になります。
本記事では、C言語の初心者でも安心して学べるように、平均値の算出方法を5つのステップで丁寧に解説します。
●C言語の基礎知識
C言語の特徴と基本的な要素について解説します。
○C言語とは
C言語は、1972年にAT&Tベル研究所で開発された汎用プログラミング言語です。
その性能の高さと汎用性から、現在でもOSの開発や組み込みシステムの制御など、幅広い場面で使用されています。
○変数とは
C言語における「変数」は、データを一時的に保存しておくための「入れ物」のことを指します。
変数には型があり、整数を扱うためのint型、実数を扱うためのdouble型、文字列を扱うためのchar型など、用途によって適切な型を選ぶ必要があります。
○配列とは
「配列」とは、複数の同じ型のデータを一つの名前でまとめて扱うための構造です。
たとえば、10人分の学生のテストの点数を保存する場合、個々の変数を10個宣言するのではなく、一つの配列を使ってまとめて扱うことができます。
●平均の算出とは
平均とは、合計値を個数で割った値のことを言います。
例えば、テストの点数の平均を求める場合、全生徒の点数を足してその合計を生徒の数で割ることで計算できます。
●C言語で平均を算出する手順
それでは具体的な手順について見ていきましょう。
○手順1:配列に数値を格納する
まずは、平均を求めるためのデータを配列に格納します。
これは例えば、テストの点数のような一連のデータを保存するための作業です。
下記のコードでは、int型の配列を宣言し、5つの数値を格納しています。
int scores[5] = {90, 80, 85, 70, 75};
○手順2:数値の合計を求める
次に、配列に格納されたすべての数値の合計を求めます。これは配列の各要素を順に足し合わせることで実現できます。
下記のコードでは、for文を使って配列の各要素を合計しています。
int sum = 0;
for (int i = 0; i < 5; i++) {
sum += scores[i];
}
○手順3:平均を計算する
合計値を求めたら、次に平均を計算します。
これは合計値を要素数で割ることで実現できます。
下記のコードでは、合計値を配列の要素数で割って平均を求めています。
double average = (double)sum / 5;
○手順4:結果を出力する
計算結果を確認するために、結果を出力します。
下記のコードでは、printf関数を使って平均値を表示しています。
printf("Average: %f\n", average);
○手順5:全体のコードを確認する
以上のステップを組み合わせて、全体のコードは次のようになります。
#include <stdio.h>
int main(void) {
int scores[5] = {90, 80, 85, 70, 75};
int sum = 0;
for (int i = 0; i < 5; i++) {
sum += scores[i];
}
double average = (double)sum / 5;
printf("Average: %f\n", average);
return 0;
}
このコードを実行すると、「Average: 80.000000」という結果が出力されます。
これが5つの数値の平均値になります。
●C言語で平均を算出するサンプルコード
次に、C言語で平均を算出する具体的なサンプルコードを紹介します。
下記のコードは、配列に格納された数値の平均を計算し、その結果を出力します。
#include <stdio.h>
int main() {
int data[] = {5, 3, 4, 9, 1}; // 5つの数値が格納された配列
int sum = 0; // 合計を初期化
int i;
// 配列の数値の合計を求める
for (i = 0; i < 5; i++) {
sum += data[i];
}
// 平均を計算し出力する
double average = (double)sum / 5;
printf("平均値は %.2f です。\n", average);
return 0;
}
このコードでは、まず「data」という名前の配列を定義して5つの数値(5、3、4、9、1)を格納しています。
次に、「sum」を0で初期化し、その後forループを使って配列の中の数値の合計を求めています。
そして、「average」変数に平均値を計算し格納し、最後にprintf関数を使って平均値を出力しています。
このコードを実行すると、次のような結果が出力されます。
平均値は 4.40 です。
この例からわかるように、C言語では算術演算子を使って容易に平均を計算することができます。
●C言語の注意点と対処法
しかし、C言語には注意点がいくつかあります。特に初心者が陥りがちなのが、整数の割り算による平均値の計算です。
C言語では整数同士の割り算の結果も整数になるため、小数点以下が切り捨てられてしまいます。
整数同士の割り算で平均を求める誤ったコードを紹介します。
#include <stdio.h>
int main() {
int data[] = {5, 3, 4, 9, 1}; // 5つの数値が格納された配列
int sum = 0; // 合計を初期化
int i;
// 配列の数値の合計を求める
for (i = 0; i < 5; i++) {
sum += data[i];
}
// 平均を計算し出力する
int average = sum / 5;
printf("平均値は %d です。\n", average);
return 0;
}
このコードを実行すると、「平均値は 4 です。」と出力されてしまいます。
これは、整数の割り算が整数を返すため、本来の平均値である4.40ではなく、4が出力されてしまうからです。
この問題を避けるには、少なくとも一方の数値をdouble型にキャストすることで、小数点以下の値を保持することができます。
具体的には、前述の正しいサンプルコードのように、「(double)sum / 5」と書くことで、割り算の結果を小数点以下まで求めることが可能です。
●C言語のカスタマイズ方法
さらに、C言語では様々なカスタマイズが可能です。
例えば、配列の要素数が動的に変化する場面では、配列の長さを変数で保持しておくと便利です。
下記のコードでは、「length」変数を使用して配列の要素数を管理しています。
このようにすると、配列の要素数が変わったときでも、コードの一部を変更するだけで対応することができます。
#include <stdio.h>
int main() {
int data[] = {5, 3, 4, 9, 1, 7, 8, 2, 6}; // 9つの数値が格納された配列
int sum = 0; // 合計を初期化
int i;
int length = sizeof(data) / sizeof(data[0]); // 配列の要素数を求める
// 配列の数値の合計を求める
for (i = 0; i < length; i++) {
sum += data[i];
}
// 平均を計算し出力する
double average = (double)sum / length;
printf("平均値は %.2f です。\n", average);
return 0;
}
このコードを実行すると、「平均値は 5.00 です。」と出力されます。
これは、配列「data」の要素が9つに増え、その平均値が5.00となるためです。
●C言語の応用例とサンプルコード
さらに、C言語の平均計算は、より大きなデータセットでのデータ分析にも応用できます。
下記のコードは、100個の数値が格納された配列の平均値を計算しています。
大量のデータを扱う場面では、このように配列とループを組み合わせることで、効率的に計算を行うことができます。
#include <stdio.h>
int main() {
int data[100]; // 100個の数値が格納される配列
int sum = 0; // 合計を初期化
int i;
// 配列に数値を格納する
for (i = 0; i < 100; i++) {
data[i] = i + 1;
}
// 配列の数値の合計を求める
for (i = 0; i < 100; i++) {
sum += data[i];
}
// 平均を計算し出力する
double average = (double)sum / 100;
printf("平均値は %.2f です。\n", average);
return 0;
}
このコードを実行すると、「平均値は 50.50 です。」と出力されます。
これは、1から100までの数値の平均値が50.50であるためです。
まとめ
この記事では、C言語を使って平均値を計算する方法を紹介しました。
初心者でも容易に理解できるよう、基本的な知識から詳細なサンプルコードまで丁寧に解説しました。
また、整数の割り算の注意点やカスタマイズ例、さらなる応用例も紹介しました。
これらの知識を活かして、あなたもC言語で平均値を計算するプログラムを作成してみてください。
あなたのプログラミング学習が、この記事を通じて一歩進むことを願っています。