ネストされたforループで1から9までの数の4乗までを出力するCプログラム
ネストされたループとは
ネストされたループ(入れ子構造のループ)とは、あるループの中に別のループが配置された構造のことを指します。外側のループが1回実行されるたびに、内側のループはその反復範囲全体を実行します。
ネストされたforループの基本構造は以下の通りです。
for (初期化; 条件式; 更新処理){
for (初期化; 条件式; 更新処理){
文;
}
文;
}プログラム例
以下は、ネストされたforループを使用して、1から9までの各数値の1乗から4乗までを表形式で出力するCプログラムです。
#include <stdio.h>
void main(){
int i, j, k, temp, I = 1;
printf("I\tI^2\tI^3\tI^4 \n");
printf("--------------------------------\n");
for (i = 1; i < 10; i++) /* 外側のループ */{
for (j = 1; j < 5; j++) /* 第1階層のネスト */{
temp = 1;
for (k = 0; k < j; k++)
temp = temp * I;
printf("%d\t", temp);
}
printf("\n");
I++;
}
}プログラムの仕組み
このプログラムでは、3重のループ構造が使用されています。
外側のループ(i):出力する数値(1〜9)を管理します。変数 I が現在の基数を保持し、1回の反復が終わるごとにインクリメントされます。
第1階層のネスト(j):べき乗の指数(1〜4)を制御します。各行に出力する項目数を決定します。
第2階層のネスト(k):実際のべき乗計算を行います。変数 temp を1で初期化し、基数 I を j 回乗算することで、I の j 乗を求めます。
実行結果
上記のプログラムを実行すると、以下の出力が得られます。
I I^2 I^3 I^4 ----------------------- 1 1 1 1 2 4 8 16 3 9 27 81 4 16 64 256 5 25 125 625 6 36 216 1296 7 49 343 2401 8 64 512 4096 9 81 729 6561
まとめ
このプログラムは、ネストされたループの基本的な動作を理解するのに適した例です。外側のループが1回回るごとに、内側のループが完全に実行されるという入れ子構造の特性を活かし、べき乗の計算と表形式の出力を効率的に実現しています。ループの階層構造と各変数の役割を理解することで、より複雑な反復処理にも応用できるでしょう。
-
C言語でアームストロング数を判定するプログラムの作成方法
アームストロング数とは? 本記事では、入力された整数 n がアームストロング数(Armstrong number)であるかどうかを判定するCプログラムについて解説します。 アームストロング数とは、各桁の数字をそれぞれ「桁数(位数)」でべき乗し、その総和が元の数値と等しくなる数のことです。例えば、4桁の数 1634 は 14 + 64 + 34 + 44 = 1 + 1296 + 81 + 256 = 1634 となるため、アームストロング数です。 アームストロング数を求める基本的な考え方は、次の式のように表せます。 計算式: wxyz…. = pow(w, n) + pow(x, n) + p
-
ループを使わずに数列を出力するPythonプログラム|再帰とフラグで実現する方法
本記事では、for文やwhile文などのループ構文を一切使わずに数列を表示するという問題の解法について解説します。問題の定義問題: 2つの数値 N と K が与えられます。まずNが0より大きい間はNからKを繰り返し引き、Nが0以下(ゼロまたは負)になったら、今度は逆にKを足していきます。そして値が元の数値Nに戻った時点で処理を終了します。実行例N = 10K = 4出力: 10 6 2 -2 2 6 10アルゴリズムNが0より大きい間、関数を再帰的に呼び出し続けます。各呼び出しのたびにNからKを減算します。数値が0以下になったら加算モードに切り替え、各呼び出しごとにKを加算します。元の数値Nに