Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

forループで数字をすべて英単語に変換して出力するC言語プログラム

この記事では、2つの整数 ab が与えられたとき、その範囲内の各数字を対応する英単語に変換し、1つずつ出力するC言語のプログラムを紹介します。例えば、数字「5」は「Five」と表示されるイメージです。

入力が a = 3b = 8 の場合、出力は次のようになります。

  • Three
  • Four
  • Five
  • Six
  • Seven
  • Eight

解決の手順

この問題を解くために、以下の手順に従います。

  1. 引数として数字 d を受け取る関数 solve() を定義します。
  2. d が 0〜9 の範囲外の場合は「Beyond range of 0 - 9」というメッセージを返します。
  3. d の値(0〜9)に応じて、それぞれ対応する英単語(Zero〜Nine)を返します。
  4. 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;
}

この方法なら、条件分岐が不要になり、可読性と保守性が大幅に向上します。状況に応じて使い分けるとよいでしょう。

  1. ネストされたforループで1から9までの数の4乗までを出力するCプログラム

    ネストされたループとはネストされたループ(入れ子構造のループ)とは、あるループの中に別のループが配置された構造のことを指します。外側のループが1回実行されるたびに、内側のループはその反復範囲全体を実行します。ネストされたforループの基本構造は以下の通りです。for (初期化; 条件式; 更新処理){ for (初期化; 条件式; 更新処理){ 文; } 文; }プログラム例以下は、ネストされたforループを使用して、1から9までの各数値の1乗から4乗までを表形式で出力するCプログラムです。#include <stdio.h> void ma

  2. 【C言語】forループを使って1〜Nまでの素数をすべて表示するプログラム

    問題 実行時にユーザーが入力した値nに対して、1からnの間に存在するすべての素数を表示するC言語プログラムを作成しましょう。 解決策 ここでは、forループを使用して、実行時にユーザーから与えられた値nまでの範囲内にある素数をすべて検出・表示する方法を解説します。なお、素数とは、1とその数自身以外に約数を持たない、1より大きい自然数のことです。具体的には、2、3、5、7、11、13などが該当します。 アルゴリズム 以下は、実行時にユーザーが入力した値nまでの素数をすべて表示するためのアルゴリズムです。 ステップ1 − nの値を入力として読み込む ステップ2 − カウンタ変数countを0で初