输入n个数据,这些数据已按从小到大顺序排列,统计其中出现的不同数据的个数。例如,5个整数1 3 3 4 4中有一个3个不同数据1 3 4,因而不同数据的个数为3
循环遍历数组,然后去重就行,就是for循环+continue,遇到不重复的插入新数组,遇到重复的直接continue跳到下一次循环
想降低代码量,直接hash表,普通实现,也只不过是类似的操作,建立一个数组,遍历n个数,每次检查是否在数组中,不是就加入,最后统计数组长度即可
代码如下:
#include <stdio.h>
#define n 100
int main()
{
int N,a[n],count=1,this;
printf("请输入输入数据总数N(N小于100):");
scanf("%d", &N);
for(int i=0;i<N;i++)
scanf_s("%d", &a[i]);
this = a[0];
for (int i = 1; i < N; i++)
{
if (this == a[i])
{
continue;
}
else
{
count++;
this = a[i];
}
}
printf("%d",count);
return 0;
}