标题
统计正整数的个数
类别
流程控制
时间限制
1S
内存限制
1000Kb
问题描述
统计n个正整数中每个数出现的次数。
输入说明
第一行是一个整数n(5<n<30),表示要待统计整数的个数;
第二行是n个整数,每个整数均小于100000
输出说明
按照整数从小到大的顺序依次输出不同的整数及其出现次数,整数和出现次数之间用冒号(:)分隔。
输入样例
12
19 223 35 321 2 33 44 223 2 19 2 19
输出样例
2:3
19:3
33:1
35:1
44:1
223:2
321:1
#include<stdio.h>
void bubble_sort(int arr[], int len) //冒泡排序
{
int i, j, temp;
for (i = 0; i < len - 1; i++)
for (j = 0; j < len - 1 - i; j++)
if (arr[j] > arr[j + 1])
{
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
int fun(int arr[],int len,int i)//计每个数重复次数
{
int j,p=1;
for(j=i+1;j<=len-1;j++)
{
if(arr[i]==arr[j])
{
p++;
}
}
return p;
}
int funqvchong(int a[], int n)//数组去重
{
int i,j,k;
for(i=0; i<n-1; i++)
{
for(j=i+1; j<n; j++)
{
if(a[i]==a[j])
{
for(k=j; k<n-1; k++)
{
a[k]=a[k+1];
}
n--;
j--;
}
}
}
return n;
}
int main()
{
int n,s[30],i,y[30],u,t=0;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&s[i]);
}
bubble_sort(s,n);//排序
for(u=0;u<=n;u++)
{
y[u]=fun(s,n,t);//计每个数重复次数
t+=fun(s,n,t);
}
n=funqvchong(s,n);//去重
for(i=0;i<n;i++)
{
printf("%d:%d\n",s[i],y[i]);
}
}
2021-10-31//xdoj统计正整数个数
最新推荐文章于 2024-12-24 23:03:14 发布