該程序應讀取用戶輸入的數字的數字,並檢查重複的數字。該程序不斷詢問數字,直到用戶輸入小於或等於0的任何東西。它主要起作用,如果輸入重複數字,它會告訴你。但是,如果您從另一個號碼呼叫輸入相同的數字,則它被視爲重複數字。例如,如果在一個實例中輸入了23,然後在另一個實例中輸入了52,則認爲它是重複的(即使沒有輸入新的號碼)。任何想法如何解決它?C程序錯誤(未完全退出循環?)
#include <stdio.h>
#include <stdbool.h> //as per C99 standard
int main (void)
{
bool digit_seen[10] = {false};
int digit;
long n;
while (1){
printf("Enter a number (enter 0 to terminate the program): ");
scanf("%ld", &n);
if (n == 0){
break;
}
while (n > 0){
digit = n % 10;
if (digit_seen[digit]){
break;
}
digit_seen[digit] = true;
n /= 10;
}
if (n > 0){
printf("Repeated digit\n");
} else {
printf("No repeated digit\n");
}
}
return 0;
}
你對「重複數字」的定義是什麼? – artm
如果一個數字在輸入的數字中出現多次。例如,輸入號碼2324,重複的數字是2. – Noah210012