题目详情
给定一个长度为n的数组a,请你编写一个函数:
int get_unique_count(int a[], int n); // 返回数组前n个数中的不同数的个数
格式
输入格式
第一行包含一个整数n。1≤n≤1000
第二行包含n个整数,表示数组a。
输出格式
共一行,包含一个整数表示数组中不同数的个数。
样例
输入样例
5
1 1 2 4 5
输出样例
4
代码
#include <stdio.h>
int get_unique_count(int a[], int n);
int main()
{
int i,n;
scanf("%d",&n);
if(n>=1&&n<=1000)
{
int a[n];
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
printf("%d",get_unique_count(a,n));
}
return 0;
}
int get_unique_count(int a[], int n)
{
int i,j,count=1,temp;
for(i=0;i<n-1;i++)
{
for(j=0;j<n-1-i;j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
for(i=1;i<n;i++)
{
if(a[i]!=a[i-1])
count++;
}
if(count==1)
return 0;
else
return count;
}
注释
才疏学浅,有问题请纠正谢谢