用C語言實現查詢陣列中重複的資料,刪除重複資料後輸出陣列

2021-05-22 08:17:04 字數 4574 閱讀 8881

1樓:陳興愛渝

從第一個元素開始一次和其後元素比較,如果相等,先用一個變數記下這個位置,後面的元素全部向前移動,再從剛才記下的位置繼續比較,直到比較完畢,也就是合併完了所有的相同元素。再輸出陣列就行了。

2樓:雨王的雪鷹

for(int i=0;i

for(int j=0;j

c語言排序後刪除陣列中重複的數字再排序輸出

3樓:會飛的小兔子

#include

#include

#definesize81

voiddelete_repeat(char*str);

voidbubble_sort(char*str);

intmain()

//刪除重複字元

voiddelete_repeat(char*str)str[strlen(str)-1]='\0';

i--;}}

}}//氣泡排序

voidbubble_sort(char*str)}k--;

}while(k>0&&swap);

}擴充套件資料刪除排序陣列中的重複項注意事項

不要使用額外的陣列空間,必須在原地修改輸入陣列並在使用o(1)額外空間的條件下完成,意味著不能通過新建陣列存放的方式解決。

可以考慮增加一個遊標的方式(命名為:index),遍歷整個陣列,當遇到前一個和後一個不相等的時候就給遊標自增,這樣的話對於相同的元素可以直接跳過不統計,最後返回」遊標的大小+1「(也即不重複的元素的個數)。

4樓:貌似風輕

#include

main()}}

printf("10個數排序後是:");

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

printf("\n");

for(i=0;i<9;i++)     //刪除重複數字}printf("刪除重複數字後:");

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

printf("\n");}

5樓:匿名使用者

**就不給你寫了,我的思路是:先將所有數字氣泡排序(書上有**),然後輸出的時候,

flag=a[0];輸出a[0];

for(int i=0;i!=flag)

}就這麼多了,剩下的自己寫吧,順便說一句,學習程式設計要多敲**

c語言程式設計:輸出陣列中重複出現的數

6樓:聽不清啊

#include

int main()

{int i,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

7樓:莊政警

為方便測試,直接初始化了陣列

#include

int main()

; //為方便測試,直接初始化了陣列回

int b[10] = ;  //用b記錄重複的數值int i,j,k,l;

l = 0;

for (i = 0; i < 10; ++i)if(k==l)  //沒有,則加入,長度+1b[l++] = a[i];}}

for (i = 0; i < l; ++i)printf("\n");

return 0;}

c語言刪除一個整型陣列裡面重復的元素

8樓:匿名使用者

利用雙重迴圈,將每個值依次與其後面的值相比較,如果有相同的則刪除該元素即可。

刪除時,可以使用將後面元素依次向前移動一位,同時總長度減一的方式。

參考**如下:

int remove_repeat(int *a, int l){int i, j, k;

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

9樓:周小狐狸愛我

int elimination(int a, int count)}}

return count;}

10樓:匿名使用者

我跟你直接說思路吧,他們這樣的雙重迴圈陣列太大的話很耗時間的,你可以,先給陣列排序,然後刪除多餘的數就很耗操作了,只需要看相鄰的數就可以了。

11樓:匿名使用者

int i, j;

int buf = ;

int count = strlen(buf);

for(i = 0; i < count; i++)}}buf[count] = '\0';

提供給你個思路 我沒有除錯,不過思路我覺得不錯!

就是從陣列裡第一個元素開始找相同的,如果相同就把 相同元素和陣列最後一位交換,下一個相同的就和陣列倒數第二位交換,最後把 count位變成『/0』,最後列印陣列。

12樓:匿名使用者

for(int i=0; iif(arr[j]=arr[i])length--;

break;}}}

13樓:匿名使用者

將第一個元素輸出,再後面的一個個與前面的比較,有相等的就繼續迴圈,不等的就輸出,用for語句做

用c#語言編寫一個去除陣列中重複資料的方法該如何編寫?

14樓:熊熊熊灬熊孩子

方法一:先引

用 using system.linq;

int delrepeatdata(int a){return a.groupby(p => p).select(p => p.key).toarray();

{方法二:

內如圖容

c語言 陣列中重複的資料都不要

15樓:匿名使用者

首先要確定陣列中存的是什麼型別的資料,之後strlen他的長度,從0開始到strlen(a[10])/2為止,兩個for迴圈比較,如果相等,刪除那兩個資料(就是將他賦值為空),就是這樣

16樓:匿名使用者

void main(), b[10] = ;

int i, j,k=0,c=0;

for (i = 0; i < strlen(a);i++)if (c==0)

b[k++] = a[i];}}

用c語言實現查詢陣列中重複的資料。

17樓:有時不要找我

查詢到後是輸出還是將重複的資料刪去(除第一個外)???

c語言,刪除陣列中的重複數字然後輸出

18樓:凌亂心扉

#include "stdio.h"

#include "string.h"

void main()

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

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

}printf(" \n ");

for(i=0;i

19樓:荒村歸來

樓主程式有問題的地方:k值的初始化(k需要在每次迴圈時 跟j同時初始化)

樓主在迴圈對比a、b時,除了第一次執行迴圈時,對k初始化了,後面執行迴圈時,由於k沒有初始化,故導致k越來越大,而j卻在每次迴圈時,初始化了,故無論如何k,j都不會出現相等的。

20樓:汽水

#include

#define n 10 //陣列長度

void main()

for(i=0;i

if(sg==0)

printf("%d\t",a[i]);//輸出不是重複的數}printf("\n重複的數共計:%d個\n",count);

}這是我的**,。。。。已經有人給出了,和我的思路差不多,說說你的想法,你的演算法應該有問題

21樓:田真久

#include

int main()

{int n,i,j,arr1[100],arr2[100];

int index=0,count,current=0;//current 記錄當前是否重複 count記錄重複多少次

scanf(" %u",&n);

for(i=0;i查是

否有和當前數字重複的

for(j=0;j

對於輸入的陣列a,刪除 a中重複的元素值。用c語言實現 5

22樓:匿名使用者

#include

void main()

}if(flag==0)

flag=0;

}for(j=0;j

printf("%d\n",changed[j]);}

c查詢陣列中重複的數字,c查詢陣列中重複的數字

include include include using namespace std int main else it second 1 if vecrepeat.size 0 cout vecrepeat j else cout endl return 0 朋友,請 採納答案 您的採納是我答題的...

C語言實現在字串中查詢指定的字元,並輸出指定字元在字元

首先獲得一個字元用ch getchar 或者scanf c ch 其次判斷字元相等直接用 接著j沒有定義 最後輸出int陣列用迴圈 include include int main if flag 0 printf no else printf n return 0 c語言 輸入一串字元,再輸入一個...

用c語言實現51微控制器的可調PWN輸出實驗,要求用按鍵s20 s23分別實現不同的佔空比,s20對

參考。如何用51微控制器輸出一個佔空比可調的方波 30 估計你這個是想使用微控制器來驅動dc dc穩壓電源吧。你買stc12系列的微控制器,自帶pwm及adc功能,然後通過輸出電壓及電流值調整頻率輸出,控制mos管驅動高頻變壓器就可以完成了。首先選bai擇一個i o設定為du輸出模式,這個就是zhi...