题干
本题要求实现一个函数,删去给定整数数组中的重复整数,不重复的元素放于原数组中,不要改变原来的次序。该函数返回不重复的整数个数。
函数接口定义:
函数原型为:
int Unique_Int ( int a[ ], int n );
其中 a[ ] 是输入的整数数组, n 是整数个数(0<=n&&n<=100)。 函数须返回 a中不重复的整数个数,删除重复的整数(仅保留第一个),依然存于数组a中。
裁判测试程序样例:
#include <stdio.h>int Unique_Int ( int a[ ], int n );int main()
{int a[100], n, k, count;scanf("%d", &n);for(k=0; k<n; k++)scanf("%d", &a[k]);count = Unique_Int (a, n);printf("%d ", count );for(k=0; k<count; k++)printf("%d ", a[k] );return 0;}/* 请在这里填写答案 */
样例
输入样例:
5
2 5 2 2 -1
输出样例:
3 2 5 -1
解题过程
int Unique_Int(int a[],int n){int N=101;int i,j;for( i=0;i<n-1;i++){for( j=i+1;j<n;j++){if(a[i]==a[j]){a[j]=N;N++;}}}int m=0;for(int k=0;k<n;k++){if(a[k]<100){a[m]=a[k];m++;}}return m;
}