c語言小程式之 如何輸出一個整數的每一位的幾種解法及優化
阿新 • • 發佈:2019-02-18
如題,假設想要輸出一個整數 n 的每一位,我們可以想到使用 n%10和 n /10,n的個位上的數值 = n%10;令n= n/10,則n的十位上的數值 =n%10······ 以此類推其餘位便可求的。下面我們用程式碼實現:
#include <stdio.h> int main() { int n; printf("請輸入一個整數:\n"); scanf("%d", &n); while (n) { if (n < 0) { n = -n; } printf(" %d\n", n % 10); n = n / 10; } system("pause"); return 0; }
當然,除了上述方法之外還可以把整數n的每一位都存在數組裡,再一一輸出,程式碼實現如下:
#include <stdio.h> int main() { int n,i; int arr[10]; printf("請輸入一個整數:\n"); scanf("%d", &n); for (i = 0;i < 10;i++) { while (n) { if (n<0) { n = -n; } arr[i] = n % 10; n = n / 10; printf(" %d \n", arr[i]); } } system("pause"); return 0; }
除了這兩種方法之外,還有一種方法也可以實現上述問題,就是利用遞迴函式可以呼叫自己本身的特點來代替上面的迴圈操作,程式碼實現如下:
#include <stdio.h> void print_num(int n) { if (n != 0) { if (n<0) { n = -n; } printf(" %d \n", n % 10); print_num(n / 10); } } int main() { int n; printf("請輸入一個整數:\n"); scanf("%d", &n); print_num(n); system("pause "); return 0; }