C語言中怎麼刪除陣列中相同的數字

2021-03-03 20:31:29 字數 5653 閱讀 3962

1樓:手機使用者

#include "stdio.h" main() ; int count=sizeof(num)/sizeof(int); for(i=0;i還有不懂加我q 834262164

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

2樓:凌亂心扉

#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

3樓:荒村歸來

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

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

4樓:汽水

#include

#define n 10 //陣列長度

void main()

for(i=0;i

if(sg==0)

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

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

5樓:田真久

#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

c語言中怎麼刪除陣列中相同的數字?

6樓:匿名使用者

你可以選擇一種排序方式(如:直接選擇排序),定義一個陣列,通過迴圈一一比較,在if中判斷兩個陣列的值是否相等,若相等,用free釋放。

7樓:匿名使用者

#include "stdio.h"

main()

;int count=sizeof(num)/sizeof(int);

for(i=0;ifor(j=i+1;j

}for(i=0;i

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樓:會飛的小兔子

#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「(也即不重複的元素的個數)。

15樓:貌似風輕

#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");}

16樓:匿名使用者

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

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

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

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

c語言中怎麼刪除陣列中的一個元素?

17樓:禾生七七

方法:刪除就是將其下標所在位置的中的內容置為空(也就是0),然後從此位置開始,後面的內容前移,再把最後那個位置的置為空(就是0)。

前移無非就是 類似 arr[ i - 1] = arr[ i ] 這個意思。

當可以確認陣列中存放的都是整數,你可以將這個元素置為-1表示刪除。增加就是先檢查你的陣列中有沒有-1的元素,如果有,就設定為你的值。如果全部都滿了,就開一個更大的陣列,把資料拷貝過去。

把相應位後面的一次前移一位,就是實現了刪除操作,可以用個for迴圈就可以實現了。

陣列的記憶體分配:變數在記憶體中是從大到小定址的(記憶體中以位元組為單位),比如00000000 00000000 00000000 00001010在記憶體中,00001010的地址是最小的;而陣列則有些不同,陣列的元素自然的從上往下排列 儲存,整個陣列的地址為首元素的地址。 (但是組成元素的位元組還是按從大到小)。

c語言 去掉陣列中重複的元素····求幫助

18樓:飛丶逐夢

#include

int main()

;int i;

int j;

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

for(j=0;j!=0)

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

}我這個方法不適用與陣列中有0的情況,如果陣列中有0的話,可以把a[i]=0和if(a[i]!=0)上的0改成其他陣列中沒有的數就行了

19樓:匿名使用者

我用的是字元陣列。。。其實方法都一樣。。#include#include

#define maxsize 100int main()i--;}}

i = 0;

while( array[i] != '\0' )printf( "\n" );

return 0;}

20樓:匿名使用者

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

21樓:匿名使用者

for(int i = 0; i < sizeof(a)/sizeof(a[0]);i++)

}if(bexsit == false)}

22樓:匿名使用者

#include

int main()

else j++;

}i++ ; }

puts(str);}

23樓:董俊錕

#include

void main()

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

c語言如何刪除陣列中的重複元素?

24樓:

//#include "stdafx.h"//vc++6.0加上這一行.

#include "stdio.h"

void main(void),ln;

for(ln=sizeof(a)/sizeof(int),k=i=1;i=k) a[k++]=a[i];

}for(i=0;i

printf("\n");}

用c語言如何刪除陣列中的重複元素

25樓:匿名使用者

我用的是字元陣列。。。其實方法都一樣。。#include#include

#define maxsize 100int main()i--;}}

i = 0;

while( array[i] != '\0' )printf( "\n" );

return 0;}

26樓:匿名使用者

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

27樓:匿名使用者

#include

int main()

else j++;

}i++ ; }

puts(str);}

C語言,刪除陣列中的重複元素,C語言如何刪除陣列中的重複元素?

include stdafx.h vc 6.0加上這一行.include stdio.h void main void ln for ln sizeof a sizeof int k i 1 i k a k a i for i 0 i printf n include define n 1000 d...

C語言陣列元素刪除小問題,C語言刪除陣列元素問題

你好!是在你基礎之上修改的,看後面的註釋 include include include int main void num 3 length 10 for i 0 i include int main void int num 3,length 10 int i,j for i 0 i 你 0 幹...

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

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 樓主程式有問題的地方 k值的初始化 k需要在每次迴圈時 跟j同時初始化 樓主在迴圈對比a b時,除了第一次執行迴...