检查数中重复出现的数字

 

#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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值