大河之jian 发表于 2020-3-9 13:50:49

检查数中重复出现的数字

#include<stdbool.h>   /* only C99*/
#include<stdio.h>
int main(void)
{
        bool digit_seen = {flase};
        int digit;
        long n;
       
        printf("Enter a number:");
        scanf("%ld",&n);

        while(n>0) {
                digit = n%10;                              /*这一步有什么意思啊*/
                if (digit_seen)                        /*用digit 作下标是为什么呢*/
                        break;
                digit_seen = true;
                n/=10;
                }
               
                if (n>0)
                        printf("Repeated digit\n");
                else
                        printf("No repeated digit\n");

                return 0;
}

qiuyouzhi 发表于 2020-3-9 13:54:38

1,取最后一位(为何不自己试一下?)
2,那还能用什么做下标?
3,第4行拼写错误

liuzhengyuan 发表于 2020-3-9 14:15:16

本帖最后由 liuzhengyuan 于 2020-3-9 14:18 编辑

看到底下
digit_seen = true;
就是说它是用数组的下标来表示一个数。
如果这个数已经出现过了,那么数组就会是true循环跳出,程序结束

比如:第一次出现n
原来是 false 的 digit_seen 就会变为 true.
第二次出现n:
检测到 digit_seen 是 true 条件成立跳出循环
页: [1]
查看完整版本: 检查数中重复出现的数字