当前位置:首页 » 网络管理 » c如何删除数组中的重复元素
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c如何删除数组中的重复元素

发布时间: 2022-08-28 14:04:49

1. c语言中,如何用删除法删除数组中相同的数字

#include<stdio.h>

intdel_same(intdate[],intn);

intdel_same(intdate[],intn)

{

inti,j,k=0;

for(i=0;i<n;++i)//i用来遍历数组

{

for(j=i+1;j<n&&date[i]-date[j];++j);

if(!(j-n))//没有重复元素

date[k++]=date[i];//可将date[]看作两个数组

}

returnk;//返回删除后的有效长度

}

intmain(void)

{

intdate[1001],i,j,k,n;

printf("输入数据个数:");

scanf("%d",&n);

printf("输入数据:");

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

scanf("%d",date+i);

k=del_same(date,n);

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

printf("%-5d",date[i]);

return0;

}

(1)c如何删除数组中的重复元素扩展阅读

C语言在数组中删去指定数字

#include<stdio.h>

#include<string.h>

intmain()

{

intn;

scanf("%d",&n);

intarray[10];

intarray_1[10];

intj=0;

for(inti=0;i<10;i++)

{

scanf("%d",&array[i]);

}

for(inti=0;i<10;i++)

{

if(array[i]!=n)

{

array_1[j]=array[i];

++j;//此时j++也是可以的;

}

}

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

{

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

}

return0;

}

2. C语言如何删除数组中的重复元素

//#include "stdafx.h"//vc++6.0加上这一行.
#include "stdio.h"
void main(void){
int i,j,k,a[]={4,78,3,2,19,0,56,56,8,7,3,1,90,86,437,918,0,1},ln;
for(ln=sizeof(a)/sizeof(int),k=i=1;i<ln;i++){
for(j=0;j<k;j++)
if(a[j]==a[i]) break;
if(j>=k) a[k++]=a[i];
}
for(i=0;i<k;printf("%d ",a[i++]));//Look at...
printf("\n");
}

3. 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]);

}

(3)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(标准输入设备,一般指向键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。

4. c语言如何删除数组中重复元素

1
/*
2
思路:
3
将字符串存入字符数组a中,设将值拷贝给数组b,遍历b的每个元
4
素,与a中的每个元素比较,有相同则b中对应元素置为-1。
5
输出b中不为-1的元素。
6
*/
7
#include<stdio.h>
8
#include<string.h>
9
char
a[100],b[100];
10
void
Del(int
index,int
len){
11
for(int
i=0;i<len;i++){
12
if(index
==
i)
continue;//下标相同即同一个元素不比较,进入下一个循环
13
if(b[index]
==
a[i])
b[index]=-1;//有相同元素,置值为
-1
14
}
15
}
16
int
main(){
17
gets(a);
18
memcpy(b,a,sizeof(a));//将a的元素拷贝给b
19
int
len=strlen(a);//求a的长度
20
for(int
i=0;i<len;i++){
21
Del(i,len);
22
}
23
for(int
i=0;i<len;i++){//输出b中非-1的元素
24
if(b[i]!=-1){
25
printf("%c",b[i]);
26
}
27
}
28
return
0;
29
}

5. C语言问题 把一个数组中的重复元素去掉

1、首先,点击桌面上的VC++6.0,打开软件。

6. c语言中怎样将数组中的所有相同的数都删除

可以先排个序,然后相邻元素比较,相同的就通过后边的向前移动来去掉, 最后参用链数的数组这个插入删除方便且时间少。

7. C语言 删除数组中相同元素 参照大佬的代码的新思路 写了一下又有问题 求教

完全参照你的思路改的。

只用一个数组,找相同,删其中一个,数组需要移位。

#include<stdio.h>
#defineN10
intmain()
{
inta[N];
for(inti=0;i<N;i++)
scanf("%d",&a[i]);
printf("源: ");
for(inti=0;i<N;i++)
printf("%d",a[i]);
//------------------修改部分,其他与你源码一致-------------------------------
intfind,i,j,k,n=N;
while(1)//循环检查,直到没有相同数值元素
{
find=0;
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
if(a[i]==a[j])//找到两个相同的,删除后一个a[j],数组移位,最大长度n值改变,并跳回最外层循环,开始新一轮检测
{
for(k=j;k<n-1;k++)//删除并移位
a[k]=a[k+1];
n--;//长度减一
find=1;
break;
}
}
if(find==1)
break;
}
if(find==0)
break;
}


printf(" 处理后: ");
for(i=0;i<n;i++)
printf("%d",a[i]);
//-------------------------------------------------------------------------------
return0;
}

8. c++如何删除一个数组中的重复元素

方法一、

vector<int> sun;

//向sun添加元素

for (int i = 0; i < n; ++i)

{

sun.push_back(primes[i]);

}

sort(sun.begin(), sun.end());

//使用 erase 删除

sun.erase(unique(sun.begin(), sun.end()), sun.end());

earse的功能是删除指定范围内的所有函数;unique将相邻的重复的元素移到最后。

方法二、

排序函数(sort)和去重函数都在<algorithm>头文件中。

#include <iostream>

#include <algorithm>

#include <vector>

using namespace std;

int main() {

vector<int> v;

cout << "Number of vector's element : " << endl;

int number;

cin >> number;

for (int i = 0; i < number; i++) {

int temp;

cin >> temp;

v.push_back(temp);

}

sort(v.begin(),v.end());

v.erase(unique(v.begin(), v.end()), v.end());

for (int i = 0; i < v.size(); i++) {

cout << v[i] << " ";

}

cout << endl;

return 0;

}

unique()函数将重复的元素放到vector的尾部然后返回指向第一个重复元素的迭代器再用erase函数擦除从这个元素到最后元素的所有的元素.


(8)c如何删除数组中的重复元素扩展阅读:

return的用法:

return的作用是结束正在运行的函数,并返回函数值。return后面可以跟一个常量,变量,或是表达式。

1、函数的定义一般是这样的,例如:

inta(inti)第一个int是函数的返回值的类型,也就是return后面跟的值的类型,a是函数的名称,括号里的是传递给函数的参数,int是参数的类型,i是参数的名字

.../省略函数体内容

returnb;//b必须与函数头的返回值一致(此处为int型)

2、简单函数举例:

intaddOne(intb)

returnb+1;

该函数的作用是取得一个数,将这个数加上1,再将结果返回。

3、调用时:

intresult=addOne(2);//此时result的值为3

函数括号里的参数也可以为变量或能算出值的表达式

以上就是一个基本的函数,一般的函数都有返回值,也就是return后面跟的值,返回值可以为各种数据类型,如:int,float,double,char,a[](数组),*a(指针),结构或类(c++)

但不是所有函数都有返回值,如果某个函数无返回值,那么返回值的位置则为“void”关键字,此时函数体中无返回值,即无return的值。但是函数中也可出现return,即一个空的return句子,其作用是使函数立即结束,如voidprint()//括号中为空表示无传递参数、

printf("a");

printf("b");

return;//函数执行到此处结束

printf("c");

}//该函数只执行到return语句处,即屏幕上输出的为"ab"

9. C语言删除一个整型数组里面重复的元素

利用双重循环,将每个值依次与其后面的值相比较,如果有相同的则删除该元素即可。

删除时,可以使用将后面元素依次向前移动一位,同时总长度减一的方式。

参考代码如下:

intremove_repeat(int*a,intl)
{
inti,j,k;

for(i=0;i<l;i++)
{
for(j=i+1;j<l;j++)//对后面每个元素比较,去重。
{
if(a[j]==a[i])//发现重复元素。
{
for(k=j+1;k<l;k++)//依次前移一位。
a[k-1]=a[k];
l--;//总长度减一。
}
}
}

returnl;//返回新的长度值。
}

10. 用C语言如何删除数组中的重复元素

说的不是很清楚,数组定义的时候就删除?看来你对数组的操作还不是很清楚,应该是在数据写入数组的时候将其删除吧。你可以这样,如果数组不大,在写入数据的时候先遍历一遍数组看看数组中是否有该数据,如果有那么就不把数据写入数组,如果没有就接着最后一个元素写入数组就可以了。