#include<stdio.h>
#include<stdbool.h>
#define _CRT_SECURE_NO_WARNINGS_
int main()
{
bool digit_seen[10] = { false}; /*BOOL是 布尔型变量,也就是逻辑型变量的定义符,类似于float、double等,只不过float定义 浮点型,double定义双精度浮点型。在 objective-c中提供了相似的类型BOOL,它具有YES值和NO值。
布尔型变量的值只有 真(true)和假(false),可用于逻辑表达式,也就是“或”“与”“非”之类的逻辑运算和大于小于之类的关系运算,逻辑表达式运算结果为真或为假。*/
int digit;
long int n;
printf("Enter a number:");
scanf_s("%ld", &n);//这里ld中的l是字母l,对应long的转换说明形式.
while (n > 0)
{
printf("%d\n", n);//方便理解
digit = n % 10;
if (digit_seen[digit])/*若数组出现同一下标,if函数将会使整个循环结束,即出现了相同的数字*/
break;
digit_seen[digit] = true;
n /= 10;
}
/*整个while通过求余把数字串最后的数字赋值给digit,并通过除法将前一位数字放在后一位,然后使的对应数组下标为真,若数字串中出现相同的数字,先前一次的循环已经使数组为真了,整个循环提前结束,否则一直求余求到余0为止*/
if (n > 0 )
printf("Repeated digit\n");
else
printf("No repeated digit\n");
return 0;