首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C語言實作:判斷輸入三位數是否為阿姆斯壯數(含輸入驗證)

     編輯:關於C語言

互動式阿姆斯壯數判斷程式

本程式接收使用者輸入的一個三位數,驗證範圍後判斷是否為阿姆斯壯數(水仙花數),並給予相應提示訊息。

功能需求

  • 提示輸入三位數。
  • 檢查範圍:必須在 100~999 之間,否則報錯。
  • 拆解百位、十位、個位並計算立方和。
  • 比較立方和與原數,輸出判斷結果。

完整程式碼

#include <stdio.h>

int main()
{
    int num, a, b, c;

    printf("請輸入一個三位數:");
    scanf("%d", &num);

    if(num < 100 || num > 999)
    {
        printf("%d不是三位數,輸入有誤!\n", num);
    }
    else
    {
        a = num % 10;        // 個位
        b = num / 10 % 10;   // 十位
        c = num / 100;       // 百位

        if(a*a*a + b*b*b + c*c*c == num)
        {
            printf("%d is Armstrong.\n", num);
        }
        else
        {
            printf("%d is not Armstrong!\n", num);
        }
    }
    return 0;
}

執行結果示意

判斷阿姆斯壯數執行結果

測試案例

輸入輸出說明
153153 is Armstrong.1+125+27=153 ✓
370370 is Armstrong.27+343+0=370 ✓
123123 is not Armstrong!1+8+27=36 ≠ 123
9999不是三位數,輸入有誤!範圍檢查生效
10001000不是三位數,輸入有誤!範圍檢查生效

改進建議

  • 加入迴圈讓使用者可連續測試多個數字。
  • 使用 long long 支援更大位數判斷。
  • 輸入非數字時 scanf 失敗處理(清緩衝區)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved