您的位置:首页 > 其它

众数问题

2016-10-09 22:16 141 查看

问题描述:

给定含有n个元素的多重集合S,每个元素在S中出现的次数称为该元素的重数。多重集S中重数最大的元素称为众数。 ★算法设计:对于给定的由n个自然数组成的多重集S,计算S的众数及其重数。★数据输入:输入数据由文件名为input.txt的文本文件提供。文件的第1行为多重集S中的元素个数n;在接下来的n行中,每行有一个自然数。 ★结果输出: 将计算结果输出到文件output.txt。输出文件有2行,第一行是众数,第2行是重数

源程序:

#include<stdio.h>
int main() {
intn,i;
scanf("%d",&n);
inta
= {0};
for(i=0;i<n; i++)
scanf("%d",&a[i]);
for(inti=0; i<n; i++)
for(intj=0; j<n-i-1; j++) {
if(a[j]>a[j+1]){
intswap=a[j];
a[j]=a[j+1];
a[j+1]=swap;
}
}
intflag=a[0];
intmax=1,maxA;
intnum=1;
for(i=1;i<n; i++) {
if(flag==a[i]){
++num;
if(num>max){
max=num;
maxA=a[i];
}
}else {
flag=a[i];
}
}
printf("众数:%d重数:%d\n",maxA,max);
return0;
}

 

网络代码:

#include <stdio.h>
int main() {
inti,j,Count=0,index=0,nCount=0;
intn;
scanf("%d",&n);
inta
;
for(i=0;i<n; i++) {
scanf("%d",&a[i]);
}
for(i=0;i<n; i++) {
for(j=0;j<n; j++) {
if(a[j]==a[i])
nCount++;
}
if(nCount>Count){
Count=nCount;
index=i;
}
nCount=0;
}
printf("%d\n%d",a[index],Count);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  算法 数据 设计