问题
- 给定含有n个元素的多重集合S,每个元素在S中出现的次数称为该元素的重数。多重集S中重数最大的元素称为众数。例如,S={1,2,2,2,3,5}。多重集S的众数是2,其重数为3。对于给定的由n个自然数组成的多重集S,计算S的众数及其重数。
代码
- 排序法
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a[100]={-1},n=0,i=0,max=0,s=0,t=0,j=0;
scanf("%d",&n);//输入数组 长度
for(;i<n;i++)
{
scanf("%d",&a[i]);//输入数组元素值
}
for(j=0;j<n-1;j++)//排序,每次找到最小值,循环进行
{
for(i=j+1;i<n;i++)
{
if(a[j]>a[i])
{
t=a[j];
a[j]=a[i];