题干
本题要求实现一个函数,删去给定整数数组中的重复整数,不重复的元素放于原数组中,不要改变原来的次序。该函数返回不重复的整数个数。
函数接口定义:
函数原型为:
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;
}