C言語で2次元配列の全要素の合計を計算する方法(実行時初期化)
問題
実行時初期化(ランタイム初期化)を使用して、2次元配列のすべての要素の合計を計算するプログラムを作成します。
2次元配列とは
2次元配列は、表形式のデータを格納したい場合や、行列演算などの数学的処理を行うアプリケーションでよく使用されます。
宣言の構文は以下の通りです。
データ型 配列名 [行サイズ] [列サイズ];
例えば、int a[4][4]; のように宣言します。
この場合、配列の要素数は「行サイズ × 列サイズ」で求められ、4 × 4 = 16個となります。
サンプルプログラム
以下は、実行時初期化を使用して2次元配列のすべての要素を読み込み、偶数要素と奇数要素それぞれの合計を計算するC言語のプログラムです。
#include<stdio.h>
void main(){
//配列と変数の宣言//
int A[4][3],i,j,even=0,odd=0;
//配列への要素の読み込み//
printf("Enter elements into the array A :\n");
for(i=0;i<4;i++){
for(j=0;j<3;j++){
printf("A[%d][%d] : ",i,j);
scanf("%d",&A[i][j]);
}
}
//forループを使って配列内の偶数・奇数要素の合計を計算//
for(i=0;i<4;i++){
for(j=0;j<3;j++){
if((A[i][j])%2==0){
even = even+A[i][j];
}
else{
odd = odd+A[i][j];
}
}
}
printf("Sum of even elements in array A is : %d\n",even);
printf("Sum of odd elements in array A is : %d",odd);
}プログラムのポイント
- 二重のforループ:外側のループで行(i)、内側のループで列(j)を制御し、配列の全要素にアクセスします。
- 剰余演算子(%):
A[i][j] % 2 == 0で偶数かどうかを判定し、偶数ならevenへ、奇数ならoddへ加算します。 - scanfによる入力:ユーザーが入力した値を実行時に配列へ格納する「実行時初期化」を行っています。
実行結果
上記のプログラムを実行すると、以下のような出力が得られます。
Enter elements into the array A: A[0][0] : 01 A[0][1] : 02 A[0][2] : 03 A[1][0] : 04 A[1][1] : 10 A[1][2] : 20 A[2][0] : 30 A[2][1] : 40 A[2][2] : 22 A[3][0] : 33 A[3][1] : 44 A[3][2] : 55 Sum of even elements in array A is: 172 Sum of odd elements in array A is: 92
この例では、入力された12個の要素のうち偶数の合計が172、奇数の合計が92となり、全要素の合計は264であることが確認できます。
-
【C++】他のすべての要素の合計を割り切る配列要素の個数を数える方法
本記事では、整数値からなる配列 arr[] が与えられたとき、「その要素自身を除いた残りの要素の合計を割り切れる要素」が配列の中にいくつあるかを求める方法を解説します。配列とは、同じ型の要素を固定長で連続的に格納できるデータ構造です。複数のデータをまとめて扱うことができ、同じ型の変数の集合として考えると理解しやすくなります。具体例入力: int arr_1[] = {9, 6, 3}出力: count is 3説明: 要素 9 に対しては残りの合計 6+3 = 9 が 9 で割り切れ、要素 6 に対しては 9+3 = 12 が 6 で割り切れ、要素 3 に対しては 9+6 = 15 が 3 で
-
【Python入門】配列(リスト)内の全要素の出現頻度をカウントする2つの方法
このチュートリアルでは、配列(リスト)内のすべての要素が出現する回数(頻度)を求めるプログラムの作成方法を解説します。Pythonでは主に2つのアプローチがあり、それぞれ実装方法とコード例を見ていきましょう。 方法1:dict(辞書)を使う まずは、標準的なdict(辞書)を使った基本的な方法です。処理の流れは以下の通りです。 配列を初期化します。 空の辞書を初期化します。 リストを反復処理します。 要素が辞書に存在しない場合は、値を 1 に設定します。 要素がすでに辞書に存在する場合は、値を +1 してカウントを増やします。 辞書を反復処理しながら、要素とその出現回数を出力します。