给定一组 𝑁 数字 𝑎0, 𝑎1, . . ., 𝑎𝑁−1。构建数组元素值的直方图:对于每个值,计算它在数组中出现的次数。第一行包含一个整数 𝑁 (1 <= 𝑁 <= 10^5)。第二行包含 𝑁 空格分隔的整数 𝑎𝑖 (1 <= 𝑎𝑖 <= 10^4)。
对于数组中至少出现一次的每个值,以“值:数字”格式打印它在数组元素中出现的次数。
值必须按升序显示。输出两个用冒号和空格隔开的整数,用 printf 函数,格式字符串如下:
printf ("%d: %d", value , count );
我做了几天的程序;在输出中,所有元素都重复:
#include<stdio.h>
int main(){
int N, kol;
kol=1;
int a[100000];
scanf("%d\n", &N);
for(int i=0; i<N; i++){
scanf("%d", &a[i]);
}
for(int i=1; i<N; i++){
if (a[i]==a[i-1]){
kol++;
}
printf("%d: %d\n", a[i], kol);
}
return 0;
}
请让我知道在这里可以做什么/更正。
试试这样: