参考csdn上一位大佬的文章:删除一个有序数组中的重复元素
本人采用的是方案二,代码实现如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| #include <stdio.h> #include <stdlib.h>
#define N 10 int DelSameX(int *L,int n) { int i=0,j; if(n==0) { i=0; } else { for(j=1;j<n;j++) { if(L[j]!=L[i]) { i++; L[i]=L[j]; } } } return i; } int main() { printf("Please input feidijian youxu shuzu[%d]: ",N); int num[N]; for(int i=0;i<N;i++) scanf("%d",&num[i]); int j=DelSameX(num,N); for(int i=0;i<=j;i++) printf("%d ",num[i]); putchar('\n'); system("pause"); return 0; }
|
运行效果如图:
完!