從鍵盤輸入一個多位整數,判斷其中是否有重複的數字。若有,輸出重複的數字及其出現次數。
輸入: 1122431
輸出:
1 重複 出現 3 次 2 重複 出現 2 次
利用長度為 10 的整數陣列 count[10] 記錄每個數字 (0-9) 出現的次數。通過 n % 10 取得個位數字,n /= 10 去除個位,循環直到 n 為 0。最後遍歷陣列,輸出計數大於 1 的數字及其次數。
#include <stdio.h>
int main() {
long n = 0;
printf("請輸入一個多位數: ");
scanf("%ld", &n); // 使用 %ld 讀取 long
int count[10] = {0};
while (n > 0) {
count[n % 10]++;
n /= 10;
}
for (int i = 0; i < 10; i++) {
if (count[i] > 1) {
printf("%d 重複 出現 %d 次\n", i, count[i]);
}
}
return 0;
}
注意:原代碼中 scanf(\"%d\", &n) 與 long n 不匹配,已修正為 %ld。