#include
#include
int main(void)
{
bool digit_seen[10] = { false };
int digit;
long n;
printf("Enter a number: ");
scanf("%ld", &n);
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;
}
if判断语句是,当()里面判断为真时执行下一条语句,当()内判断为假时跳过下一条语句。按你所说,if (digit_seen[digit]) break;并不说digit等于0时break,而是当digit_seen[digit]等于0时break。你会了吗,我的上个月写博客里面就有判断语句ifelse的用法。