C語言刪除整型陣列裡面重複的元素

2021-03-21 23:46:56 字數 5374 閱讀 2445

1樓:匿名使用者

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

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

參考**如下:

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

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

2樓:周小狐狸愛我

int elimination(int a, int count)}}

return count;}

3樓:匿名使用者

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

4樓:匿名使用者

int i, j;

int buf = ;

int count = strlen(buf);

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

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

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

5樓:匿名使用者

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

break;}}}

6樓:匿名使用者

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

c語言問題,刪除整型陣列內重複的項並輸出,如能解惑,不勝感激。

7樓:

我可以幫你實現這個程式。實現**如下:

#include

#define n 8  //定義乙個符號常量int remove_repeat(int *a, int len){int i, j, k;

for(i = 0; i < len; i ++){for(j = i+1; j 元素比較,去重。

{if(a[j] == a[i])//發現重複元素。

{for(k = j+1; k

示例執行結果:

1 2 2 3 5 5 5 8

after remove repeat...

1   2   3   5   8

2 2 2 3 3 3 3 4

after remove repeat...

2   3   4

8樓:匿名使用者

#include

#include

#include

int main(int argc, char *argv);int i,j;

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

printf("\n源陣列:");

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

j=0;

while(j<30)

for(i=j+1;i<30;i++)

}j++;

}printf("\n目標陣列:");

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

return 0;}

9樓:惻耳傾聽丶

#include

int delduplicateelement(int a,int count)

count--;}}

}return count;

}int main(int argc, const char * argv) ;

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

printf("原陣列:");

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

count = delduplicateelement(a,count);

printf("刪除重複元素後:");

for (int i = 0; i < count; i++)printf("\n");}

c語言,刪除陣列中的重複元素

10樓:

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

11樓:匿名使用者

#include

#define n 1000

#define flag 0x80000000 /*特殊標記,用最小的負數表示*/

void main( )

}for(i = 0; r[i] != flag; i++); /*找到第乙個特殊標記*/

for(j = i + 1; j < length;) /*刪除數列中的特殊標記*/

length = i; /*修改刪除重複值後的數列的長度*/for(i = 0; i < length; i++)printf("%-4d", r[i]);}

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

12樓:

//#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語言問題 把乙個陣列中的重複元素去掉

13樓:凌亂心扉

#define _crt_secure_no_deprecate#include

#include

#include

using namespace std;

去掉字串中重複的字元並排序

int main()}}

int newsize = input.size() - count;

string str(newsize,'0');  //建立乙個長為newsize,用『0』填充的字串

int j = 0;

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

}sort(str.begin(), str.end());

cout << str<}}

14樓:匿名使用者

先排序,在進行遍歷比較。

#include

// 公升序陣列src

void sort(int *src, int len)}}int main()

, d;

int i = 0, **t;

sort(num, 10);  // 排序d = num[0];

for (i = 1; i < 10; i++) // 遍歷比較}if (num[9] == d)

printf("%d\n", d);

return 0;}

15樓:

int main()

for(i=0;i<9-m;i++)//i<=9---->i<9-mm++;

j=i+1;

}else

j++;}}

for(i=0;i<=9-m;i++)

return 0;

}其實就是改了下迴圈條件而已(既然下面的迴圈都用了m了,為什麼上面不用呢)

16樓:南瓜豬的的的

基本思路

先將陣列排序

拷貝陣列去重

#include

int a = ;

int b[16];

int less(void *a, void *b)int unique(int * input, const int size_input, int * ans)

qsort(a,size_input,sizeof(int),less);

ans[size_ans] = input[0];

for (; ii

17樓:你妹名字要多長

是把重複數去掉的 不是單純沒有重複

刪除有序陣列中的重複元素c語言

18樓:匿名使用者

int remove(int *arr, int sz)//當index與i之間有其他元素,那麼這些元素必定是重複得了,直接覆蓋掉

}return index + 1;}

19樓:編**的沒意思

如果注意到是有序,你還是要問的話= =

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

20樓:匿名使用者

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

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

i = 0;

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

return 0;}

21樓:匿名使用者

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

22樓:匿名使用者

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

}if(bexsit == false)}

23樓:匿名使用者

#include

int main()

else j++;

}i++ ; }

puts(str);}

24樓:董俊錕

#include

void main()

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

c語言無符號整型的輸出C語言無符號整型的輸出

b.不過個人覺得這題沒答案才對。平台都沒說,怎麼會有準確答案呢?vc6.0肯定不是這個答案,它的int是32位的。如果這題的int是16位的那麼就選b。解釋 1在記憶體中是以補碼形式儲存的。補碼的二進位制為 1111 1111 1111 1111 這個數按照無符號數輸出 也就是0xffff 也就是6...

c語言陣列越界,C語言陣列(指標)越界訪問

第乙個和第二個陣列a 2 按指標說就是指向a 1 也就是30的記憶體下乙個位置,兩種程式排列不一樣,第二個下乙個應該是i的位置,第乙個不一定,可能是堆裡面的隨機數。恩。打個比方說有一天你去賓館訂了個房間。然後再牆壁上鑿了個洞看隔壁住著誰。後來又有一天你又去訂了乙個房間,然後又在牆壁上鑿了個洞看隔壁住...

c語言編寫程式,在一維陣列裡輸入一句英文,統計該句子裡出

include main printf there are d words in the line.n num c語言編寫乙個程式,在一維陣列裡輸入一句英文,統計該句子裡出現的單詞個數 10 宣告乙個較大的char型陣列,待輸入完成後依次檢查陣列元素,除第乙個單詞可能需要個別處理外,其餘以空格後跟字...