c语言,判断一个整数中是否出现重复数字

c语言,判断一个整数中是否出现重复数字希望写出程序,最好说明下思路... c语言,判断一个整数中是否出现重复数字希望写出程序,最好说明下思路 展开
 我来答
跪着作揖
高粉答主

2019-05-21 · 繁杂信息太多,你要学会辨别
知道答主
回答量:598
采纳率:100%
帮助的人:17.5万
展开全部

#include <stdio.h>

#include<stdbool.h>

int main()

{

long int num,temp;

int i=1;

printf("请输入一个整数:");

scanf("%ld",&num);

temp = num;                                                 //获取所输入整数的位数。

while(temp/10>0){

i+=1;

temp = temp/10;

}                                                          //打印所输入整数的位数,并定义一个bool型数

printf("该数为%d位数。\n",i);

bool a[i+1];                                    //初始化数组中所有元素为0

for(int j=0;j<i+1;j++){

a[j] = 0;

}                                                         //判断是否有重复的数字。

<span style="color:#ff0000;">do{

int n = num % 10;

if(a[n]==1){

printf("出现重复了。\n");

break;

}

a[n] = 1;

num /= 10;

}while(num);</span>

if(num==0){

printf("没有重复。\n");

}

return 0;

}

扩展资料

使用其他的方法判断一个整数中是否出现重复数字:

int x;     

printf("请输入一个数:");     

scanf("%d",&x);    

bool bs[10]={0};    

do {        

int n=x%10;        

if ( bs[n] ==1 ) 

{             

printf("重复了\n");            

break;          

}         

bs[n] = 1;         

x/=10;          

while (x);    

if ( 0==x ) 

{         

printf("没有重复\n");              

}    

return 0;

风若远去何人留
推荐于2017-11-23 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450132
专业C/C++软件开发

向TA提问 私信TA
展开全部

定义一个数组,标记是否出现过这个数

当出现一个数,同时对应数已经被标记过 代表重复。


然后 循环获取每一位就可以了。

#include <stdio.h>
int check_repeat(int n)
{
    int flag[10]={0};
    int a;
    while(n)
    {
        a=n%10;
        n/=10;
        if(flag[a]) return 1;//发现重复
        flag[a]=1; //标记出现过
    }
    return 0; //正常退出循环 表示没有出现重复
}
int main()
{
    int a;
    scanf("%d",&a);
    if(check_repeat(a))printf("有重复\n");
    else printf("无重复\n");
    
    return 0;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式