c\c++语言删除数组中重复元素
c\c++語言刪除數組中重復元素 如題:num[]={1,2,3,3,4,5,6} 輸出為:123456
?
下為原代碼:
#include "stdafx.h"
#include "iostream.h"
void findnum(int num[7])
{
?? ?int i,k,n=7,j;//num[7]={1,2,3,3,4,5,6};
?? ?for(i=0;i<n;i++) // num[i]對比所有的元素值
?? ?{
?? ??? ?for(j=i+1;j<n;j++)//因為不跟自己比值所以是i+1
?? ??? ?{
?? ??? ??? ? if(num[i]==num[j])//當遇到相同元素值時。num[2]==num[3]
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ? for(k=j;k<n;k++)//
?? ??? ??? ??? ??? ? {
?? ??? ??? ??? ??? ??? ? num[k]=num[k+1];//把num[3]=num[4],num[4]=num[5]等等,覆蓋前面的值。
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ? //當找到num[2]與num[3]相同值時,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?//num[3]后的所有值都覆蓋前面一個值。
?? ??? ??? ??? ??? ? }
?? ??? ??? ??? ??? ? n--;//為什么要n--?1是因為覆蓋了前面的值,后面的值就不需要顯示了。2是為了數組被少了一個元素了。
?? ??? ??? ??? ??? ? j--;//為什么要j--?新值(剛被覆蓋的值num[3]=4)還沒有比較。
?? ??? ??? ??? ??? ??? ?//減了之后,上去循環會再加1,那么它還是3,還是會把新值重新比較。?? ?
?? ??? ??? ??? ?}
?? ??? ?}
?? ?}
?? ?for(i=0;i<n;i++)//只要往前覆蓋過一次,n值就會減少一次,按n循環就可得出實際元素數。
?? ?{
?? ??? ?printf("%d",num[i]);
?? ?}
?? ?
}
int main(int argc, char* argv[])
{
?? ?int a[]={1,2,3,3,4,5,6};
?? ?findnum(a);
?? ?return 0;
}
也是看到本站tiny_evil給的代碼再加上自己的理解才能寫出。
c語言刪除數組中重復元素_VictorTinyEvil的博客-CSDN博客_c語言刪除數組中的重復元素原題:把一個數組中的重復元素去掉。如a[12]={1,1,2,7,3,2,3,4,5,8,7,4},輸出為:1,2,7,3,4,5,8在csdn上查了一下,發現給出的方法都很復雜,對新手很不友好,于是寫了一個比較簡單的,源碼如下:#include<stdio.h>#define N 12int main(){ int i,j,n=N,k; int num[N]...https://blog.csdn.net/qq_45861670/article/details/104084459?spm=1001.2014.3001.5506
?
總結
以上是生活随笔為你收集整理的c\c++语言删除数组中重复元素的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ReactNaitve代码规范和工具格式
- 下一篇: C++学习(三十九)(C语言部分)之 游