1樓:匿名使用者
int remove(int *arr, int sz)//當index與i之間有其他元素,那麼這些元素必定是重複得了,直接覆蓋掉
}return index + 1;}
2樓:編**的沒意思
如果注意到是有序,你還是要問的話= =
c語言,刪除陣列中的重複元素
3樓:
//#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");} 4樓:匿名使用者 #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語言刪除一個整型陣列裡面重復的元素 5樓:匿名使用者 利用雙重迴圈,將每個值依次與其後面的值相比較,如果有相同的則刪除該元素即可。 刪除時,可以使用將後面元素依次向前移動一位,同時總長度減一的方式。 參考**如下: int remove_repeat(int *a, int l){int i, j, k; for(i = 0; i < l; i ++){for(j = i+1; j 6樓:周小狐狸愛我 int elimination(int a, int count)}} return count;} 7樓:匿名使用者 我跟你直接說思路吧,他們這樣的雙重迴圈陣列太大的話很耗時間的,你可以,先給陣列排序,然後刪除多餘的數就很耗操作了,只需要看相鄰的數就可以了。 8樓:匿名使用者 int i, j; int buf = ; int count = strlen(buf); for(i = 0; i < count; i++)}}buf[count] = '\0'; 提供給你個思路 我沒有除錯,不過思路我覺得不錯! 就是從陣列裡第一個元素開始找相同的,如果相同就把 相同元素和陣列最後一位交換,下一個相同的就和陣列倒數第二位交換,最後把 count位變成『/0』,最後列印陣列。 9樓:匿名使用者 for(int i=0; iif(arr[j]=arr[i])length--; break;}}} 10樓:匿名使用者 將第一個元素輸出,再後面的一個個與前面的比較,有相等的就繼續迴圈,不等的就輸出,用for語句做 c語言如何刪除陣列中的重複元素? 11樓: //#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語言排序後刪除陣列中重複的數字再排序輸出 12樓:會飛的小兔子 #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「(也即不重複的元素的個數)。 13樓:貌似風輕 #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");} 14樓:匿名使用者 **就不給你寫了,我的思路是:先將所有數字氣泡排序(書上有**),然後輸出的時候, flag=a[0];輸出a[0]; for(int i=0;i!=flag) }就這麼多了,剩下的自己寫吧,順便說一句,學習程式設計要多敲** c語言二維陣列中刪除陣列中的重複元素 15樓: 簡單地統計重複元素和不重複元素,可以用1維陣列。 #include void main() }--------------------「刪除陣列中的重 復元素」 不知道 是什麼意思。 陣列單元是連續分配單元的。即使是動態分配的單元,也不好從當中刪去。 動態分配的單元,可以用 realloc 增加分配單元 和 減少分配單元。但只能從尾部做起,單元連續。 c語言問題 把一個陣列中的重複元素去掉 16樓:凌亂心扉 #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<}} 17樓:用著追她 1、首先,點選桌面上的vc++6.0,打 開軟體。 2、開啟軟體之後,點選右上方的【檔案】【新建】。進入後,再點選【檔案】,選擇c++ source file.最後點選【確定】。 3、輸入**(定義陣列): int i; int x[7]; for(i=0;i<7;i++) 。 4、輸入**(對元素進行倒序排列): for(i=0;i<3;i++) 。 5、電擊介面上方的感嘆號,開始執行。輸入陣列的資料。 18樓:匿名使用者 先排序,在進行遍歷比較。 #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;} 19樓: 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了,為什麼上面不用呢) 20樓:南瓜豬的的的 基本思路 先將陣列排序 拷貝陣列去重 #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 21樓:你妹名字要多長 是把重複數去掉的 不是單純沒有重複 c語言,刪除陣列中的重複數字然後輸出 22樓:凌亂心扉 #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 23樓:荒村歸來 樓主程式有問題的地方:k值的初始化(k需要在每次迴圈時 跟j同時初始化) 樓主在迴圈對比a、b時,除了第一次執行迴圈時,對k初始化了,後面執行迴圈時,由於k沒有初始化,故導致k越來越大,而j卻在每次迴圈時,初始化了,故無論如何k,j都不會出現相等的。 24樓:汽水 #include #define n 10 //陣列長度 void main() for(i=0;i if(sg==0) printf("%d\t",a[i]);//輸出不是重複的數}printf("\n重複的數共計:%d個\n",count); }這是我的**,。。。。已經有人給出了,和我的思路差不多,說說你的想法,你的演算法應該有問題 25樓:田真久 #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 直接把元素後一位覆蓋前一位就行了 最後把陣列最後一位清空即可 include main c語言中怎麼刪除陣列中的一個元素 方法 刪除就是將其下 copy標所在位置的中的內容置為空 也就是0 然後從此位置開始,後面的內容前移,再把最後那個位置的置為空 就是0 前移無非就是 類似 arr i 1 arr... 好像沒有什麼直接的辦法,只有使用迴圈語句來判斷最後一個出現的非0值為最後一個元素,也就是說如果你初始化為1,2,3,0,4,5這樣有辦法判斷,但若初始化為1,2,0,3,0,0就沒辦法判斷了,只能判斷到3,因為3是最後一個非0值。因為系統預設會把其他部分都初始化為0,所以沒有辦法判斷 沒有賦值的元素... 當index為0時,bai陣列中下標為du0的和下標為4 0的元素交換,也zhi就是第一個和最後一dao個交換,回1,5 交換 當index為1時,答陣列中下標為1的和下標為4 1的元素交換,也就是第二個和倒數第二個交換,2,4 交換 因為此陣列元素的個數為奇數個,所以,最中間那個沒有必要交換,所以...C語言陣列中的刪除元素怎麼寫,C語言陣列中的刪除一個元素怎麼寫
C語言 給陣列中的元素賦值
c語言中陣列元素互換的問題,C語言中陣列元素互換的問題