C言語プログラミングで算術平均を求める方法を徹底解説
算術平均とは
算術平均(相加平均)とは、数値の集合の合計を、その集合に含まれる数値の個数で割った値のことです。
算術平均の基本的な性質
n個の数 x1, x2, …, xn の平均が x であるとき、各観測値に p を加えると、新しい平均は (x + p) になります。
n個の数 x1, x2, …, xn の平均が x であるとき、各観測値から p を引くと、新しい平均は (x - p) になります。
n個の数 x1, x2, …, xn の平均が x であるとき、各観測値に 0 以外の数 p を掛けると、新しい平均は px になります。
n個の数 x1, x2, …, xn の平均が x であるとき、各観測値を 0 以外の数 p で割ると、新しい平均は (x / p) になります。
算術平均を求めるプログラム
タイプ1:配列と要素数が与えられた場合
配列とその要素数が与えられたとき、平均を直接計算します。
入力 - 1, 2, 3, 4, 5, 6, 7, 8, 9
出力 - 5
解説 - すべての数値の算術平均を求めるには、まず全要素を合計します。次に、平均を格納する変数を用意し、「合計 ÷ 要素数」の計算結果を armean などの変数に代入します。
サンプルコード
#include<iostream>
using namespace std;
int main(){
int n, i, sum=0;
int arr[]={1,2,3,4,5,6,7,8,9};
n=9;
for(i=0; i<n; i++) {
sum=sum+arr[i];
}
int armean=sum/n;
cout<<"Arithmetic Mean = "<<armean;
}タイプ2:範囲(初項と末項)と項数が与えられた場合
3つの整数 X、Y、N が与えられたとき、X と Y の間にある N 個の算術平均(等差中項)を求めるロジックです。
これは「X と Y の間に N 項を持つ等差数列」の問題として捉えられます。ここで、X は初項、Y は末項を表します。
入力 - X = 22, Y = 34, N = 5
出力 - 24 26 28 30 32
このときの等差数列は次のとおりです。
22 24 26 28 30 32 34
解説
与えられた2つの数 X と Y の間の N 個の算術平均を X1, X2, X3, X4 … Xn とすると、X, X1, X2, X3, X4 … Xn, Y は等差数列を構成します。このとき、Y は等差数列の (N+2) 番目の項に相当します。
公差を d として、等差数列の (N+2) 番目の項を求めると、次のようになります。
Y = X + (N + 2 - 1)d Y - X = (N + 1)d
したがって、公差 d は次の式で表されます。
d = (Y - X) / (N + 1)
初項 X と公差 d の値がわかれば、X と Y の間の N 個の算術平均をすべて求めることができます。
サンプルコード
#include<stdio.h>
int main() {
int X = 22, Y = 34, N = 5;
float d = (float)(Y - X) / (N + 1);
for (int i = 1; i <= N; i++) {
printf("%3f ", (X + i * d));
}
return 0;
}実行結果
24.000000 26.000000 28.000000 30.000000 32.000000
-
Androidでのクライアントサーバープログラミング
この例は、Androidでのクライアントサーバープログラミングについて示しています サーバーとクライアントプロジェクトが必要 サーバー ステップ1 − Android Studioで新しいプロジェクトを作成し、[ファイル]⇒[新しいプロジェクト]に移動して、新しいプロジェクトを作成するために必要なすべての詳細を入力します。 ステップ2 −次のコードをres / layout/activity_main.xmlに追加します。 <?xml version = "1.0" encoding = "utf-8"?> <RelativeLa
-
C言語における静的メモリ割り当てとは?仕組みとサンプルコードで徹底解説
C言語でプログラムが使用するメモリは、大きく分けて「静的メモリ割り当て」と「動的メモリ割り当て」の2つの方法で確保されます。 静的メモリ割り当て(Static Memory Allocation)とは 静的メモリ割り当てとは、変数のサイズがプログラムの実行前に決定され、固定サイズの領域として割り当てられる方式です。一度確保されたメモリは、明示的に解放することはできません。プログラム内で宣言された変数に対して、あらかじめメモリが割り当てられます。 静的メモリ割り当ての主な特徴 アドレス演算子「&」を使って変数のアドレスを取得し、ポインタに代入することができます。 メモリはコンパイル時