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

C語言輸出整數每一位的三種方法:字符串法、取模法與遞歸法

     編輯:關於C語言

C語言輸出整數每一位的三種方法:字符串法、取模法與遞歸法

需求:輸入整數,逐位輸出 (如 72356 → 7 2 3 5 6),支援負數。

方法一:字符串法 (最簡單、支援負號)

char s[20];
scanf("%s", s);
for (int i=0; s[i]; i++) printf("%c\n", s[i]);
int len = (s[0]=='-') ? strlen(s)-1 : strlen(s);
printf("位數:%d\n", len);

方法二:取模法 (數學本質、逆序輸出)

int n; scanf("%d", &n);
while (n) { printf("%d ", n%10); n/=10; }
// 輸出個位→十位→百位... 需存入陣列再逆序打印才得正序

方法三:遞歸法 (正序輸出、優雅)

void print_digits(int n) {
    if (n > 9) print_digits(n/10);
    printf("%d ", n%10);
}
// 主調用:print_digits(abs(n)) (負數先取絕對值)

對比總結

方法優點缺點適用場景
字符串代碼極短、天然支援負號、無數學運算輸入超長可能溢出緩衝區快速原型、非數值處理
取模無遞歸棧開銷、直觀輸出逆序、需額外空間正序嵌入式無庫環境
遞歸正序輸出、代碼極簡棧深度受限 (log10(n))、負數需預處理教學演示、位數較少
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved