C 言語による回文数のチェック

CCBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、C プログラムを書いて数値が回文数かどうかをチェックする方法を学びます。以下の手順に従ってこれを達成します。

注: コーディングを練習し、gcc を使ってコンパイルと実行方法を学ぶには、自分で ~/project/main.c ファイルを作成する必要があります。

cd ~/project
## main.c を作成する
touch main.c
## main.c をコンパイルする
gcc main.c -o main
## main を実行する
./main

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL c(("C")) -.-> c/BasicsGroup(["Basics"]) c(("C")) -.-> c/ControlFlowGroup(["Control Flow"]) c(("C")) -.-> c/CompoundTypesGroup(["Compound Types"]) c(("C")) -.-> c/UserInteractionGroup(["User Interaction"]) c/BasicsGroup -.-> c/variables("Variables") c/BasicsGroup -.-> c/operators("Operators") c/ControlFlowGroup -.-> c/if_else("If...Else") c/ControlFlowGroup -.-> c/while_loop("While Loop") c/CompoundTypesGroup -.-> c/strings("Strings") c/UserInteractionGroup -.-> c/user_input("User Input") c/UserInteractionGroup -.-> c/output("Output") subgraph Lab Skills c/variables -.-> lab-123295{{"C 言語による回文数のチェック"}} c/operators -.-> lab-123295{{"C 言語による回文数のチェック"}} c/if_else -.-> lab-123295{{"C 言語による回文数のチェック"}} c/while_loop -.-> lab-123295{{"C 言語による回文数のチェック"}} c/strings -.-> lab-123295{{"C 言語による回文数のチェック"}} c/user_input -.-> lab-123295{{"C 言語による回文数のチェック"}} c/output -.-> lab-123295{{"C 言語による回文数のチェック"}} end

回文数の理解

回文数 とは、前から読んでも後ろから読んでも同じになる数値または文字列のことです。たとえば:121 や "racecar" などです。

変数の初期化

まず、プログラムに必要な変数を初期化します。与えられたプログラムでは、abcs の 4 つの変数を使用しています。これらの変数を使って必要な演算を行います。

#include<stdio.h>

int main()
{
    int a, b, c, s = 0;
    printf("Enter a number: ");
    scanf("%d", &a);
    c = a;
}

数値を逆順にする

数値を逆順にして、元の数値と比較して回文数かどうかをチェックできるようにします。数値を逆順にするために while ループを使用します。

while(a > 0)
{
    b = a % 10; // 最後の桁を抽出する
    s = (s * 10) + b; // 逆順の数値に最後の桁を追加する
    a = a / 10; // 元の数値から最後の桁を削除する
}

元の数値と逆順の数値を比較する

最後に、逆順にした数値と元の数値を比較して、それが回文数かどうかをチェックします。

if(s == c)
{
    printf("%d is a Palindrome", c);
}
else
{
    printf("%d is not a Palindrome", c);
}

完全なコード

以下は、このプログラムの完全なコードです。

#include<stdio.h>

int main()
{
    int a, b, c, s = 0;

    printf("Enter a number: ");
    scanf("%d", &a);
    c = a;

    while(a > 0)
    {
        b = a % 10;
        s = (s * 10) + b;
        a = a / 10;
    }

    if(s == c)
    {
        printf("%d is a Palindrome", c);
    }
    else
    {
        printf("%d is not a Palindrome", c);
    }

    return 0;
}

まとめ

この実験では、C 言語のプログラムを書いて数値が回文数かどうかをチェックする方法を学びました。回文数のチェックの背後にある論理を学び、それをプログラムに実装しました。これで、この概念をより深く理解し、より複雑なプログラムでそれを実装することができるようになりました。