C语言问题,关于检查数中重复出现的数字 循环中的的语句希望高手解释下#include#define TRUE 1//#define FALSE 0typedef int Bool;void main(){Bool digit_seen[10]={0};int digit;long int n;printf("Enter a number:");scanf("%ld",&n)
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/28 07:01:20
C语言问题,关于检查数中重复出现的数字 循环中的的语句希望高手解释下#include#define TRUE 1//#define FALSE 0typedef int Bool;void main(){Bool digit_seen[10]={0};int digit;long int n;printf("Enter a number:");scanf("%ld",&n)
C语言问题,关于检查数中重复出现的数字 循环中的的语句希望高手解释下
#include
#define TRUE 1
//#define FALSE 0
typedef int Bool;
void main()
{
Bool digit_seen[10]={0};
int digit;
long int 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("Repeat digit\n\n");
else
printf("No repeat digit\n\n");
}
C语言问题,关于检查数中重复出现的数字 循环中的的语句希望高手解释下#include#define TRUE 1//#define FALSE 0typedef int Bool;void main(){Bool digit_seen[10]={0};int digit;long int n;printf("Enter a number:");scanf("%ld",&n)
取这个数的个位,存在digit里,看是不是出现过,如果出现过,就退出,没有出现过就记录“出现过”,最后除以10,就相当于把个位去掉,原来的十位变成个位,百位变成十位……
digit_seen[i]里记录的是bool变量,只有真和假,用来表示 i 这个数字是不是出现过
例如个位是5,那就判断digit_seen[5]存的是true 还是 false .如果是true,说明5已经是第二次出现了,如果是false ,就记录下,以便下次再看见5就判断“出现重复了”