c\c++语言删除数组中重复元素
c\c++語(yǔ)言刪除數(shù)組中重復(fù)元素 如題: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]對(duì)比所有的元素值
?? ?{
?? ??? ?for(j=i+1;j<n;j++)//因?yàn)椴桓约罕戎邓允莍+1
?? ??? ?{
?? ??? ??? ? if(num[i]==num[j])//當(dāng)遇到相同元素值時(shí)。num[2]==num[3]
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ? for(k=j;k<n;k++)//
?? ??? ??? ??? ??? ? {
?? ??? ??? ??? ??? ??? ? num[k]=num[k+1];//把num[3]=num[4],num[4]=num[5]等等,覆蓋前面的值。
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ? //當(dāng)找到num[2]與num[3]相同值時(shí),
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?//num[3]后的所有值都覆蓋前面一個(gè)值。
?? ??? ??? ??? ??? ? }
?? ??? ??? ??? ??? ? n--;//為什么要n--?1是因?yàn)楦采w了前面的值,后面的值就不需要顯示了。2是為了數(shù)組被少了一個(gè)元素了。
?? ??? ??? ??? ??? ? j--;//為什么要j--?新值(剛被覆蓋的值num[3]=4)還沒(méi)有比較。
?? ??? ??? ??? ??? ??? ?//減了之后,上去循環(huán)會(huì)再加1,那么它還是3,還是會(huì)把新值重新比較。?? ?
?? ??? ??? ??? ?}
?? ??? ?}
?? ?}
?? ?for(i=0;i<n;i++)//只要往前覆蓋過(guò)一次,n值就會(huì)減少一次,按n循環(huán)就可得出實(shí)際元素?cái)?shù)。
?? ?{
?? ??? ?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給的代碼再加上自己的理解才能寫(xiě)出。
c語(yǔ)言刪除數(shù)組中重復(fù)元素_VictorTinyEvil的博客-CSDN博客_c語(yǔ)言刪除數(shù)組中的重復(fù)元素原題:把一個(gè)數(shù)組中的重復(fù)元素去掉。如a[12]={1,1,2,7,3,2,3,4,5,8,7,4},輸出為:1,2,7,3,4,5,8在csdn上查了一下,發(fā)現(xiàn)給出的方法都很復(fù)雜,對(duì)新手很不友好,于是寫(xiě)了一個(gè)比較簡(jiǎn)單的,源碼如下:#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
?
總結(jié)
以上是生活随笔為你收集整理的c\c++语言删除数组中重复元素的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ReactNaitve代码规范和工具格式
- 下一篇: Windows批处理bat文件