【C言語】0が入力されるまで入力値を配列に保存する方法

この記事ではC言語を使って「0が入力されるまで配列に入力された値を保存し続けるプログラムの作成方法」について解説します。
それでは早速、プログラムの作成手順を見ていきましょう。
プログラム作成手順
C言語を使って、0が入力されるまで配列に入力された値を保存し続けるプログラムの作成方法を解説します。
変数・配列の宣言
最初に、入力値を格納する変数と配列など必要なものを宣言します。この場合は、int型の変数とint型の配列が必要です。
#include <stdio.h>
#define MAX_SIZE 100 // 配列サイズ
int main() {
int input; // 入力値
int array[MAX_SIZE]; // 入力された値を保存する配列
return 0;
}
今回は配列サイズMAX_SIZE
を100にしているため、最大100個まで入力できます。
入力待ちループ処理
次に、while文で入力待ちループ処理を行います。ここでは、「0」が入力されるまで繰り返すように設定します。
#include <stdio.h>
#define MAX_SIZE 100 // 配列サイズ
int main() {
int input; // 入力値
int array[MAX_SIZE]; // 入力された値を保存する配列
while (1) {
printf("数字を入力してください(終了: 0):");
scanf("%d", &input);
if (input == 0) {
break;
}
/* 数字が0以外だった場合 */
}
return 0;
}
この時点ではまだ値の保存は行っていません。
入力された値が0か判断する条件分岐処理
最後に、if文で入力された値が「0」かどうか判断し、「0」以外であれば配列に保存してループを続行します。
#include <stdio.h>
#define MAX_SIZE 100 // 配列サイズ
int main() {
int input; // 入力値
int array[MAX_SIZE]; // 入力された値を保存する配列
int i = 0; // カウンター変数i
while (1) {
printf("数字を入力してください(終了: 0):");
scanf("%d", &input);
if (input == 0) {
break;
}
/* 数字が0以外だった場合 */
array[i] = input; // 配列array[]へ代入
i++; // カウントアップ
}
for(int j=0;j<i+1;j++){ // 結果表示用for文
printf("%d ",array[j]);
}
return(0);
}
数字を入力してください(終了: 0):10
数字を入力してください(終了: 0):4
数字を入力してください(終了: 0):5
数字を入力してください(終了: 0):6
数字を入力してください(終了: 0):2
数字を入力してください(終了: 0):0
10 4 5 6 2
このプログラムでは、while文で無限ループ処理を行い、ユーザーから整数値を受け取っています。
その後、if文で受け取った整数値が「0」かどうか判断し、「0」以外ならば配列に保存します。
また、「0」が入力された場合はwhile文から抜けます。
最後にfor文で配列内の要素分だけ繰り返し、それぞれの要素を出力しています。
以上が、「C言語で0が出現するまで連続した整数データ読み込む方法」というテーマにおいて基本的なコード例です。
注意点
プログラムを作成する際には、以下の点に注意してください。
1. 入力値の型を確認する
入力される値が整数であればint型、小数であればfloat型など、適切なデータ型を使用して変数や配列を宣言しましょう。間違ったデータ型を使用すると、予期しない動作が発生する可能性があります。
2. 配列のサイズに注意する
配列のサイズは十分な大きさに設定しましょう。入力される値の件数よりも少ない場合、エラーが発生します。また、余分に大きく設定した場合も無駄なメモリ消費となってしまいます。
3. 無限ループに陥らないよう注意する
入力待ちループ処理ではwhile文を使用しますが、条件式が常に真となるよう書かれていると無限ループに陥ってしまいます。必ず終了条件を明示的に指定してください。
以上の点に留意すれば、安全かつ正確なプログラム作成が可能です。
まとめ
今回は、C言語で0が入力されるまで配列に入力された値を保存し続けるプログラムの作成方法について解説しました。
変数・配列の宣言から、入力待ちループ処理、条件分岐処理まで一連の手順を踏むことで、目的のプログラムを作成することが出来ます。
また、サンプルコードも掲載しておりますので、ぜひ参考にしてみてください。ただし注意点もありますので、しっかり確認してから実装するようにしましょう。