日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

c\c++语言删除数组中重复元素

發布時間:2023/12/20 c/c++ 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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++语言删除数组中重复元素的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。