1樓:凌亂心扉
#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
2樓:荒村歸來
樓主程式有問題的地方:k值的初始化(k需要在每次迴圈時 跟j同時初始化)
樓主在迴圈對比a、b時,除了第一次執行迴圈時,對k初始化了,後面執行迴圈時,由於k沒有初始化,故導致k越來越大,而j卻在每次迴圈時,初始化了,故無論如何k,j都不會出現相等的。
3樓:汽水
#include
#define n 10 //陣列長度
void main()
for(i=0;i
if(sg==0)
printf("%d\t",a[i]);//輸出不是重複的數}printf("\n重複的數共計:%d個\n",count);
}這是我的**,。。。。已經有人給出了,和我的思路差不多,說說你的想法,你的演算法應該有問題
4樓:田真久
#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語言排序後刪除陣列中重複的數字再排序輸出
5樓:會飛的小兔子
#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「(也即不重複的元素的個數)。
6樓:貌似風輕
#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");}
7樓:匿名使用者
**就不給你寫了,我的思路是:先將所有數字氣泡排序(書上有**),然後輸出的時候,
flag=a[0];輸出a[0];
for(int i=0;i!=flag)
}就這麼多了,剩下的自己寫吧,順便說一句,學習程式設計要多敲**
c語言問題,刪除整型陣列內重複的項並輸出,如能解惑,不勝感激。
8樓:
我可以幫你實現這個程式。實現**如下:
#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
9樓:匿名使用者
#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;}
10樓:惻耳傾聽丶
#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語言實現查詢陣列中重複的資料,刪除重複資料後輸出陣列.
11樓:陳興愛渝
從第一個元素開始一次和其後元素比較,如果相等,先用一個變數記下這個位置,後面的元素全部向前移動,再從剛才記下的位置繼續比較,直到比較完畢,也就是合併完了所有的相同元素。再輸出陣列就行了。
12樓:雨王的雪鷹
for(int i=0;i
for(int j=0;j
c語言刪除一個整型陣列裡面重復的元素
13樓:匿名使用者
利用雙重迴圈,將每個值依次與其後面的值相比較,如果有相同的則刪除該元素即可。
刪除時,可以使用將後面元素依次向前移動一位,同時總長度減一的方式。
參考**如下:
int remove_repeat(int *a, int l){int i, j, k;
for(i = 0; i < l; i ++){for(j = i+1; j
14樓:周小狐狸愛我
int elimination(int a, int count)}}
return count;}
15樓:匿名使用者
我跟你直接說思路吧,他們這樣的雙重迴圈陣列太大的話很耗時間的,你可以,先給陣列排序,然後刪除多餘的數就很耗操作了,只需要看相鄰的數就可以了。
16樓:匿名使用者
int i, j;
int buf = ;
int count = strlen(buf);
for(i = 0; i < count; i++)}}buf[count] = '\0';
提供給你個思路 我沒有除錯,不過思路我覺得不錯!
就是從陣列裡第一個元素開始找相同的,如果相同就把 相同元素和陣列最後一位交換,下一個相同的就和陣列倒數第二位交換,最後把 count位變成『/0』,最後列印陣列。
17樓:匿名使用者
for(int i=0; iif(arr[j]=arr[i])length--;
break;}}}
18樓:匿名使用者
將第一個元素輸出,再後面的一個個與前面的比較,有相等的就繼續迴圈,不等的就輸出,用for語句做
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語言中怎麼刪除陣列中相同的數字
include stdio.h main int count sizeof num sizeof int for i 0 i還有不懂加我q 834262164 c語言,刪除陣列中的重複數字然後輸出 include stdio.h include string.h void main for k i ...
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 幹...