當前位置:首頁 » 網路管理 » 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語言如何刪除數組中的重復元素

說的不是很清楚,數組定義的時候就刪除?看來你對數組的操作還不是很清楚,應該是在數據寫入數組的時候將其刪除吧。你可以這樣,如果數組不大,在寫入數據的時候先遍歷一遍數組看看數組中是否有該數據,如果有那麼就不把數據寫入數組,如果沒有就接著最後一個元素寫入數組就可以了。