当前位置:首页 » 编程语言 » c语言数组输出重复

c语言数组输出重复

发布时间: 2022-06-18 12:23:04

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

② c语言如何判断一个数组中重复元素的个数,并输出这个个数的值

如下:

#include<stdio.h>
#include<stdlib.h>
intmain()
{
intn;
int*a;
inti;
scanf("%d",&n);
a=(int*)malloc(sizeof(int)*n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<n-1;i++)
{
for(intj=0;j<n-i-1;j++)
{
if(a[j]>a[j+1])
{
inttmp=a[j];
a[j]=a[j+1];
a[j+1]=tmp;
}
}
}
inttmp=a[0];
intcount=1;
for(i=1;i<n;i++)
{
if(tmp==a[i])
{
count++;
}
else
{
if(count>1)
{
printf("数组共有%d个数字%d ",count,a[i-1]);
}
tmp=a[i];
count=1;
}
}
if(count>1)
{
printf("数组共有%d个数字%d ",count,a[i-1]);
}
free(a);
return0;
}

我的思路是,先排序,再输出。

③ 在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;
}

④ C语言问题,删除整型数组内重复的项并输出,如能解惑,不胜感激。

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

intmain(intargc,char*argv[])
{
srand((unsigned)time(0));
ints[30]={0};
inti,j;
for(i=0;i<30;i++)
{
s[i]=rand()%10;
}
printf(" 源数组:");
for(i=0;i<30;i++)
{
printf("%d",s[i]);
}
j=0;
while(j<30)
{
if(s[j]==-32767)
{
j++;
continue;
}
for(i=j+1;i<30;i++)
{
if(s[j]==s[i])
{
s[i]=-32767;
}
}
j++;
}
printf(" 目标数组:");
for(i=0;i<30;i++)
{
if(s[i]!=-32767)
printf("%d",s[i]);
}
return0;
}

⑤ c语言排序后删除数组中重复的数字再排序输出

#include<stdio.h>

#include<string.h>

#defineSIZE81

voiddelete_repeat(char*str);

voidbubble_sort(char*str);

intmain()

{

charstr[SIZE];

gets(str);

delete_repeat(str);

bubble_sort(str);

puts(str);

return0;

}

//删除重复字符

voiddelete_repeat(char*str)

{

/**判断数组内第i个字符是否与前i-1个字符存在重复:

若重复,删除该字符,i之后的字符下标均减1,后重新判断新的第i个字符

若不重复,不做处理,继续遍历下一个

*/

for(inti=1;str[i]!='';i++){

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

{

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

{

for(intk=i;k<strlen(str)-1;k++)

{

str[k]=str[k+1];

}

str[strlen(str)-1]='';

i--;

}

}

}

}

//冒泡排序

voidbubble_sort(char*str)

{

intswap;

chartemp;

intk=strlen(str);

do{

swap=0;

for(inti=0;i<k-1;i++){

if(str[i]>str[i+1])

{

swap=1;

temp=str[i];

str[i]=str[i+1];

str[i+1]=temp;

}

}

k--;

}while(k>0&&swap);

}

(5)c语言数组输出重复扩展阅读

删除排序数组中的重复项注意事项

不要使用额外的数组空间,必须在原地修改输入数组并在使用O(1)额外空间的条件下完成,意味着不能通过新建数组存放的方式解决。

可以考虑增加一个游标的方式(命名为:index),遍历整个数组,当遇到前一个和后一个不相等的时候就给游标自增,这样的话对于相同的元素可以直接跳过不统计,最后返回”游标的大小+1“(也即不重复的元素的个数)。

⑥ C语言判断数组是否重复,

chachong(a[6]);//函数调用int
chachong(int
a[]);//函数声明这问题需要楼主了解数组知识a[6]只是一个值;而且是一个未定义的值;因为数组a不存在下标为6的元素;建议改为chachong(a);//函数调用int
chachong(int
*a);//函数声明

⑦ c语言编程:输出数组中重复出现的数

#include<stdio.h>
intmain()
{inti,j,k=0,k1,p,a[10],b[5];
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
for(j=i+1;j<10;j++)
if(a[j]==a[i])
{p=1;
for(k1=0;k1<k;k1++)
if(a[i]==b[k1])p=0;
if(p)
{printf("%d",a[i]);
b[k++]=a[i];
}
};
return0;
}

⑧ C语言,删除数组中的重复数字然后输出

#include "stdio.h"

#include "string.h"

void main()

{

int i,k=1,j=10,a[10]={4,4,4,4,5,4,9,9,9,10};

for(k=i=1;i<10;i++)

{

for(j=0;j<k;j++)

{

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

}

if(j==k) a[k++]=a[i];

}

printf(" ");

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

{

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

}

(8)c语言数组输出重复扩展阅读:

printf()函数的调用格式为:printf("&lt;格式化字符串&gt;",&lt;参量表&gt;)。

其中格式化字符串包括两部分内容:一部分是正常字符,这些字符将按原样输出;另一部分是格式化规定字符,以"%"开始,后跟一个或几个规定字符,用来确定输出内容格式。

参量表是需要输出的一系列参数,其个数必须与格式化字符串所说明的输出参数个数一样多,各参数之间用","分开,且顺序一一对应,否则将会出现意想不到的错误。

比如:

int a=1234;

printf("a=%d ",a);

输出结果为a=1234。

scanf()是C语言中的一个输入函数。与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include&lt;stdio.h&gt;。

int scanf(const char*restrict format,...);

函数scanf()是从标准输入流stdin(标准输入设备,一般指向键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。

⑨ 输出数组中的元素---重复的元素只输出一次,C语言如何做

#include<stdio.h>
#defineN8
intmain()
{
inta[N];
inti,j;
for(i=0;i<N;i++)
scanf("%d",&a[i]);
printf("%d",a[0]);
for(i=1;i<N;i++)
{
for(j=0;j<i;j++)
{
if(a[j]==a[i])
break;
if(j==i-1)
printf("%d",a[i]);
}
}
printf(" ");
}

示例运行结果:

4 2 2 6 5 2 4 1

4 2 6 5 1

⑩ 急!!!C语言:输出两组数组中相同的数字

//示例代码如下
#include<stdio.h>
#include<stdlib.h>
intmain()
{
intm,n,i,j,flag=0;
int*pm,*pn;
scanf("%d%d",&n,&m);
pm=(int*)malloc(sizeof(int)*m);
pn=(int*)malloc(sizeof(int)*n);
for(i=0;i<m;i++)
scanf("%d",pm+i);
for(i=0;i<n;i++)
scanf("%d",pn+i);
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
if(pm[i]==pn[j]){
printf("%d",pn[j]);
flag=1;
}
}
if(!flag)
printf("NO ");
printf(" ");
free(pm);
free(pn);
return0;
}

//示例运行结果
F:c_work>a.exe
57
5917123698
789161792698
917698

热点内容
华硕访问点 发布:2025-02-06 15:56:57 浏览:330
excel拼接sql 发布:2025-02-06 15:50:10 浏览:500
加密手机直播 发布:2025-02-06 15:49:31 浏览:534
自带ftp服务器好用吗 发布:2025-02-06 15:26:11 浏览:109
win7访问xp局域网 发布:2025-02-06 15:17:07 浏览:524
均线差算法 发布:2025-02-06 15:13:22 浏览:459
androidbrowser 发布:2025-02-06 15:09:49 浏览:622
勇敢的心ftp 发布:2025-02-06 15:09:03 浏览:327
php日志分析 发布:2025-02-06 15:08:19 浏览:874
36脚本大厅作者 发布:2025-02-06 14:55:53 浏览:409