1樓:會飛的小兔子
#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「(也即不重複的元素的個數)。
2樓:貌似風輕
#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");}
3樓:匿名使用者
**就不給你寫了,我的思路是:先將所有數字氣泡排序(書上有**),然後輸出的時候,
flag=a[0];輸出a[0];
for(int i=0;i!=flag)
}就這麼多了,剩下的自己寫吧,順便說一句,學習程式設計要多敲**
c語言,刪除陣列中的重複數字然後輸出
4樓:凌亂心扉
#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
5樓:荒村歸來
樓主程式有問題的地方:k值的初始化(k需要在每次迴圈時 跟j同時初始化)
樓主在迴圈對比a、b時,除了第一次執行迴圈時,對k初始化了,後面執行迴圈時,由於k沒有初始化,故導致k越來越大,而j卻在每次迴圈時,初始化了,故無論如何k,j都不會出現相等的。
6樓:汽水
#include
#define n 10 //陣列長度
void main()
for(i=0;i if(sg==0) printf("%d\t",a[i]);//輸出不是重複的數}printf("\n重複的數共計:%d個\n",count); }這是我的**,。。。。已經有人給出了,和我的思路差不多,說說你的想法,你的演算法應該有問題 7樓:田真久 #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語言刪除乙個整型陣列裡面重複的元素 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 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 15樓:莊政警 為方便測試,直接初始化了陣列 #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;} 利用雙重迴圈,將每個值依次與其後面的值相比較,如果有相同的則刪除該元素即可。刪除時,可以使用將後面元素依次向前移動一位,同時總長度減一的方式。參考 如下 int remove repeat int a,int l int i,j,k for i 0 i l i for j i 1 j int eli... 我簡單講講操作,就不寫了,假設是乙個滿的二維陣列 遍歷二維陣列找到匹配專的指定元屬素,否則,返回無 刪除元素 a i a i 1 直到結束把最後乙個值置為空演算法很簡單,我建議你用excel畫畫 就懂了 c語言二維陣列中刪除陣列中的重複元素 簡單地統計重複元素和不重複元素,可以用1維陣列。inclu... int a 3 4 這個bai無需多說,就du是乙個二zhi維陣列。int p 4 就相當於daoint p 4 它就是乙個二維陣列的指標,可以 專指向乙個第屬二維度為4的二維陣列。而a就是這樣的陣列,因而下面是合法的。p a int p 3 是指標陣列。說白了,就是定義了三個指標,分別為p 0 p...C語言刪除整型陣列裡面重複的元素
C語言如何刪除二維陣列中的指定元素並將剩餘元素依次往前移動
陣列指標和指標陣列的區別,c語言中的指標陣列和陣列指標的區別