本人新手求大神给解释下这个代码中的问题,谢谢
#include <stdio.h>#define false 0
#define true 1
typedef int bool;
int main(viod)
{
bool digit_seen[10] = {0}; //最关键的问题 是怎么确定一个bool数组什么时候是真,什么时候是假
int digit;
long n;
printf("enter a number:\n");
scanf("%ld",&n);
while(n > 0)
{
digit = n % 10;
if(digit_seen[digit]) //数组初始为false,那么此处每个迭代都应该是false,这个break语句不是多次一举吗?
break;
digit_seen[digit] = true; //这里把数组设为true意义何在?
n /= 10;
}
if(n > 0)
printf("有重复数位\n"); //请求各位大神详细说明 ,万分感谢
else
printf("没有重复数位\n");
return 0;
}