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

C語言輕鬆搞定:輸入整數按高位到低位逐位輸出

     編輯:關於C語言

C語言輕鬆搞定:輸入整數按高位到低位逐位輸出

題目要求:輸入一個整數(如 12345),從最高位開始逐位輸出(1 2 3 4 5)。最直觀的方法是將其作為字符串讀取,再逐字符打印。

核心代碼

#include <stdio.h>

int main() {
    char s[1000000];  // 足夠大的緩衝區
    gets(s);          // 讀取整行(含空格),實際建議用 fgets
    for (int i = 0; s[i] != '\0'; i++) {
        printf("%c\n", s[i]);
    }
    return 0;
}

關鍵點解析

  • 字符串處理思維:將數字視為字符序列,避開數學運算(取模/除法)的麻煩。
  • 緩衝區大小:題目未給長度上限,預留 1e6 足以應對極長輸入。
  • 安全隱患:gets 已被 C11 棄用(無長度檢查),生產代碼請改用 fgets(s, sizeof(s), stdin) 並手動去換行符。

進階:若必須用數學方法

// 先算位數,再從高位依次取出
int n; scanf("%d", &n);
int pow10 = 1;
while (n / pow10 >= 10) pow10 *= 10;
while (pow10) {
    printf("%d ", n / pow10);
    n %= pow10;
    pow10 /= 10;
}

字符串法代碼更簡潔、通用性更強(支援超長整數、負號、前導零),推薦作為首選。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved