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

OJ題解:分割整數 - 逐位拆解輸出

     編輯:關於C語言

題目要求

輸入一個不超過10位的正整數(無前導零),從最高位開始逐位輸出,數字間以單一空格分隔,最後一位後無空格。

演算法

  1. 反覆 %10 取最低位存入陣列,/10 縮減,得到逆序位數
  2. 逆向遍歷陣列輸出,非最後位後加空格

完整原始碼

#include <stdio.h>

int main() {
    int num, len = 0, digit[10], i;
    scanf("%d", &num);
    while (num) {
        digit[len++] = num % 10;
        num /= 10;
    }
    for (i = len - 1; i >= 0; i--) {
        printf("%d", digit[i]);
        if (i > 0) printf(" ");
    }
    return 0;
}

範例

輸入: 654321
陣列存入: [1,2,3,4,5,6] (索引0~5)
逆向輸出: 6 5 4 3 2 1 ✓

替代方案:字串處理

char s[12];
scanf("%s", s);
for (int i = 0; s[i]; i++) {
    printf("%c", s[i]);
    if (s[i+1]) printf(" ");
}

字串法更簡潔,無位數限制,且自然保留前導零(若題目允許)。

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