//原】數組怎樣去除重復元素
//
#include<stdio.h>
int main()
{
int a[5];
printf("input five numbers:");
for(int i=0;i<5;i++)
{
scanf("%d",&a[i]);
}
int len=5;//5 5 2 5 5
//兩個for循環用來遍歷
for(int j=0;j<len;++j)
{
for(int m=j+1;m<len;++m)
{
if(a[j]==a[m])
{
//發現與第一個for中相同的元素後,采用"覆蓋法"刪除
for(int k=m+1;k<len;++k) //此處會出現寫法的分歧--根據k=m+1的寫法,可能為len-1或其他...
a[k-1]=a[k];
len--;//長度要跟上變化
--m; //因為刪除了一個元素,要與a[j]比較的數組元素的下標實際沒變但值已改變)
}
}
}
for(int n=0;n<len;++n)
{
printf("%d ",a[n]);
}
printf("\n");
return 0;
}
本文出自 “Jean_Z的學習博客” 博客,請務必保留此出處http://7905490.blog.51cto.com/7895490/1296747