forループで数字をすべて英単語に変換して出力するC言語プログラム
この記事では、2つの整数 a と b が与えられたとき、その範囲内の各数字を対応する英単語に変換し、1つずつ出力するC言語のプログラムを紹介します。例えば、数字「5」は「Five」と表示されるイメージです。
入力が a = 3、b = 8 の場合、出力は次のようになります。
- Three
- Four
- Five
- Six
- Seven
- Eight
解決の手順
この問題を解くために、以下の手順に従います。
- 引数として数字 d を受け取る関数
solve()を定義します。 - d が 0〜9 の範囲外の場合は「Beyond range of 0 - 9」というメッセージを返します。
- d の値(0〜9)に応じて、それぞれ対応する英単語(Zero〜Nine)を返します。
- main 関数では、a から b までの範囲を for ループで繰り返し処理し、各数値に対して
solve(i)を呼び出した後、改行を出力します。
サンプルコード
理解を深めるために、実際の実装例を見てみましょう。
#include <stdio.h>
void solve(int d){
if(d < 0 && d > 9){
printf("Beyond range of 0 - 9");
}else if(d == 0){
printf("Zero");
}else if(d == 1){
printf("One");
}else if(d == 2){
printf("Two");
}else if(d == 3){
printf("Three");
}else if(d == 4){
printf("Four");
}else if(d == 5){
printf("Five");
}else if(d == 6){
printf("Six");
}else if(d == 7){
printf("Seven");
}else if(d == 8){
printf("Eight");
}else if(d == 9){
printf("Nine");
}
}
int main(){
int a = 3, b = 8;
for(int i = a; i <= b; i++){
solve(i);
printf("\n");
}
}実行結果
上記のコードを実行すると、以下のような出力が得られます。
Three Four Five Six Seven Eight
補足:switch文によるより簡潔な実装
if-else文の連鎖の代わりに、switch 文や配列を使うことで、コードをより簡潔に書くこともできます。例えば、文字列の配列を用意すれば、わずか数行で同じ機能を実現できます。
#include <stdio.h>
int main(){
const char *words[] = {"Zero", "One", "Two", "Three", "Four",
"Five", "Six", "Seven", "Eight", "Nine"};
int a = 3, b = 8;
for(int i = a; i <= b; i++){
printf("%s\n", words[i]);
}
return 0;
}この方法なら、条件分岐が不要になり、可読性と保守性が大幅に向上します。状況に応じて使い分けるとよいでしょう。
-
ネストされたforループで1から9までの数の4乗までを出力するCプログラム
ネストされたループとはネストされたループ(入れ子構造のループ)とは、あるループの中に別のループが配置された構造のことを指します。外側のループが1回実行されるたびに、内側のループはその反復範囲全体を実行します。ネストされたforループの基本構造は以下の通りです。for (初期化; 条件式; 更新処理){ for (初期化; 条件式; 更新処理){ 文; } 文; }プログラム例以下は、ネストされたforループを使用して、1から9までの各数値の1乗から4乗までを表形式で出力するCプログラムです。#include <stdio.h> void ma
-
【C言語】forループを使って1〜Nまでの素数をすべて表示するプログラム
問題 実行時にユーザーが入力した値nに対して、1からnの間に存在するすべての素数を表示するC言語プログラムを作成しましょう。 解決策 ここでは、forループを使用して、実行時にユーザーから与えられた値nまでの範囲内にある素数をすべて検出・表示する方法を解説します。なお、素数とは、1とその数自身以外に約数を持たない、1より大きい自然数のことです。具体的には、2、3、5、7、11、13などが該当します。 アルゴリズム 以下は、実行時にユーザーが入力した値nまでの素数をすべて表示するためのアルゴリズムです。 ステップ1 − nの値を入力として読み込む ステップ2 − カウンタ変数countを0で初