当前位置:首页 » 编程语言 » c语言找重复

c语言找重复

发布时间: 2022-12-18 22:26:03

A. c语言一个数组中重复的数字

#include<stdio.h>
int main(void)
{
int i, n, a[100];
int j, temp;
printf("输入元素的个数:");
scanf("%d", &n);
for (i = 0; i < n; i++)
scanf("%d", &a[i]); //循环输入n个数
for (i = 0; i < n; i++) //循环判断数组中每一个数
{
for (j = i + 1; j < n; j++) //判断a[i]后边的数是否和a[i]相等
{
if (a[i] == a[j])
{
for (temp = j; temp < n; temp++)
a[temp] = a[temp + 1]; //将a[j]后面的元素全往前移一个位置
j--; //a[j+1]取代a[j]位置,为使下次从a[j+1]开始查找,j减一(为使j保持不变)
n--; //数组长度减一
}
}
}
printf("剩余元素个数: %d\n", n);
for (i = 0; i < n; i++)
printf("%d ", a[i]);
printf("\n");
return 0;
}

B. C语言,查找数组里重复出现的数字;

检查一个数中每位的数字是否重复,
n%10来得到当前最小位的值,
每次迭代都n/=10 ,使得数字都向右移动一位
n>0来检测是否已经检测完了。
比如123这个数;
n%10
==
3,说明3已经出现,所以digit_seen[3]
==
true了,如果检测到digit_seen[3]
==
true,说明已经有3这个数字了,就重复了,所以就直接跳出循环,此时n!=0,再通过检测n就可以判断了。
n/=10来将数字向右移动一位,这个时候n
==
12
继续前两步,直到n=0(因为任何小于等于9的整形数除以10都是0)

C. C语言,查找数组里重复出现的数字;

//如果这题目是在oj上,请去掉所有的注释
#include<stdio.h>
intmain()
{
//用数组下标1~104表示输入的数字
//用数组每个元素的值表示该下标对应的元素输入次数
inta[105]={0},i,n,ni,max;
scanf("%d",&n);
max=a[0];
for(i=0;i<n;i++)
{
scanf("%d",&ni);
a[ni]++;
if(max<a[ni])
max=a[ni];
}
for(i=104;i>0;i--)//想想为什么倒着比较
{
if(a[i]==0)continue;
if(max==a[i])
{
printf("%d%d ",i,a[i]);
break;
}
}
return0;
}

D. c语言查找并输出重复字符串

//#define_CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
voidstringsort(char(*p)[1000],intm)//排列字符串,长的字符串在前面,短的在后面。
{
inti,j;
charc[1024];
for(i=0;i<m-1;i++)
{
for(j=0;j<m-1-i;j++)
if(strlen(p[j])<strlen(p[j+1]))
{
strcpy(c,p[j]);
strcpy(p[j],p[j+1]);
strcpy(p[j+1],c);
}
}
}
intsubstr(char*str,char*p)//判断p是否是str的字串,是的话返回1,不是返回0
{
inti,j;
for(i=0;str[i];i++)
{
for(j=0;str[i]==p[j]&&p[j];i++,j++);
if(p[j]==0)
{
return1;
}
if(j!=0)
{
i--;
}
}
return0;
}
intmain(void)
{
charstr[1000]="abc1243128129a343abc";
charss[1024]={0};//放子串的临时数组
charss1[1000][1000];//所有长度大于1的子串放入这里
intm=0;//子串的个数
inta[1024]={0};//统计子串的个数的数组
inti,j;
for(i=0;str[i];i++)
{
memset(ss,0,1024);
intk=0;
ss[k++]=str[i];
for(j=i+1;str[j];j++)
{
ss[k++]=str[j];
strcpy(ss1[m++],ss);
}

}
//上面这段程序是找出字符串长度大于1的所有子串

stringsort(ss1,m);//把这些字串按长度放入ss1中,长的在前面,短的在后面

for(i=0;i<m;i++)
{

char*p=str;
while((p=strstr(p,ss1[i]))!=NULL)
{
a[i]++;
p=p+strlen(ss1[i]);
}
}//这段程序是找到每一个子串出现的次数,并放入a数组中

for(i=0;i<m;i++)
{
intflag=0;//标记符
for(j=0;j<i;j++)
{
if(substr(ss1[j],ss1[i])&&a[j]==a[i])//比如abc出现了三次,而bc出现三次,那么只输出abc的次数
{
flag=1;
}

}
if(a[i]>1&&flag==0)
printf("%s:%d ",ss1[i],a[i]);
}

//system("pause");

return0;
}
//写了一晚上,真是不容易啊

E. C语言的bsearch函数遇到重复元素怎么找出来

这个理论上使用的是二分查找的方法,一般的二分查找,要求数组是升序的,最后的返回值也是一个指针,所以如果有重复值的话是找不出来的,需要你去用一般二分查找去判定左值和右值,才能找到重复区间。

F. 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;

(6)c语言找重复扩展阅读:

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

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

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


G. C语言编程,输入两组三位数,找出重复数字的代码

#include"stdio.h"

main()

{

inti,j,k,l;

inta[6]={0};

intb[6]={0};


printf("请输入第1组3个数 ");

scanf("%d",&i);

printf("请输入第2组3个数 ");

scanf("%d",&j);


a[0]=i/1%10;

a[1]=i/10%10;

a[2]=i/100%10;


a[3]=j/1%10;

a[4]=j/10%10;

a[5]=j/100%10;


printf("重复的是: ");


i=0;

j=0;

k=0;

l=0;

for(i=0;i<6;++i)

{

for(j=i+1;j<6;++j)

if(a[i]==a[j])

{

for(k=0;k<l;++k)//遍历b,是否已记录

{

if(a[i]==b[k])

break;

}

if(k==l)//没有,则加入,长度+1

b[l++]=a[i];

}

}

for(i=0;i<l;++i)

{

printf("%d",b[i]);

}

printf(" ");

return0;

}

请把分给我,谢谢,祝玩的愉快

H. 在c语言中输入数组两个数组,查找重复元素并输出怎么写啊

可以一次读入N个数据。可以考虑以回车结束读入的一组。
参考如下写法:
#include "stdio.h"
#define Max 100
int X[Max]={0,},Y[Max]={0,};

int main()
{
int i=0,j=0;
int a,b;
char c=0;

printf("输入第一个数组(以空格分开,回车结束)");
while((c!='\n'))
scanf("%d%c",X+i++,&c);

c=0;
printf("输入第二个数组(以空格分开,回车结束)");
while((c!='\n'))
scanf("%d%c",Y+j++,&c);

for(a=0;a<i;a++)
for(b=0;b<j;b++)
if(X[a]==Y[b])
printf("%d \t",X[a]);

return 0;
}

I. 怎样用C语言判断一个整数中有没有重复的数

用C语言判断一个整数中有没有重复的数的具体操作步骤如下:

1、编写头函数:#include <stdio.h>。

热点内容
落樱小屋哪里下载安卓 发布:2025-01-27 12:35:13 浏览:71
微信服务器IP跳转 发布:2025-01-27 12:26:54 浏览:73
oracle自动备份脚本linux 发布:2025-01-27 12:21:40 浏览:936
pop服务器密码怎么填 发布:2025-01-27 12:20:02 浏览:968
oraclesqlnumber 发布:2025-01-27 12:04:22 浏览:849
如何看三才配置数理暗示力 发布:2025-01-27 12:04:15 浏览:811
我的世界离线2b2t的服务器 发布:2025-01-27 11:51:25 浏览:144
网站被异常篡改访问有风险 发布:2025-01-27 11:50:01 浏览:431
光遇国际服脚本全部图 发布:2025-01-27 11:47:40 浏览:139
ios资源加密 发布:2025-01-27 11:36:33 浏览:816