C语言,判断某整数中是否存在重复数字.怎么写

如题所述

#include<stdio.h>

#include<stdbool.h>

intmain()

longintnum,temp;

inti=1;

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

scanf("%ld",&num);

temp=num;

//获取所输入整数的位数。

while(temp/10>0){

i+=1;

temp=temp/10;

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

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

boola[i+1];

//初始化数组中所有元素为0.

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

a[j]=0;

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

<spanstyle="color:#ff0000;">do{

intn=num%10;

if(a[n]==1){

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

break;

a[n]=1;

num/=10;

}while(num);</span>

if(num==0){

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

return0;

扩展资料:

return 表示从被调函数返回到主调函数继续执行,返回时可附带一个返回值,由return后面的参数指定。 return通常是必要的,因为函数调用的时候计算结果通常是通过返回值带出的。

如果函数执行不需要返回计算结果,也经常需要返回一个状态码来表示函数执行的顺利与否(-1和0就是最常用的状态码),主调函数可以通过返回值判断被调函数的执行情况。

如果函数名前有返回类型定义,如int,double等就必须有返回值,而如果是void型,则可以不写return,但这时即使写了也无法返回数值。


温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-06-26
把整数的每位上的数计算出来 通过%10然后再判断

#include "stdio.h"
int main()
{
int i,j,n;
bool tag[10];
printf("输入整数:");
scanf("%d",&n);
for(i=0;i<10;i++)tag[i]=false;
j=n;
while(j){
if(tag[j%10])break;
tag[j%10]=true;
j=j/10;
}
if(j)printf("整数%d有重复的数字",n);
else printf("整数%d没有重复的数字",n);
return 0;
}本回答被网友采纳
相似回答