C语言 求助大神,众数代码如何写?
发布网友
发布时间:2022-05-02 01:30
我来回答
共4个回答
热心网友
时间:2022-06-26 06:12
/************************************************
实现这个功能的这段代码可以这样写:
我已经测试过了
************************************************/
#include<iostream.h>
#include<malloc.h>
struct F
{
int n; //出现的次数
int num;
}b[20]; //记录数组中数字分别出现的次数和对应的数字
void fun()
{
int a[20]; //记录输入的数据
int MaxNum; //记录众数
static int n=0; //记录输入的数字个数
cout<<"输入一组数字(以-10结束):"<<endl;
int num;
while(cin>>num)
{
if(num==-10)
{
cout<<"输入结束!!!"<<endl;
break;
}
a[n++]=num;
}
for(int i=0;i<n;i++) //记录每个数字出现的次数
{
int t=a[i];
int count=0;
for(int j=0;j<n;j++)
if(t==a[j])
count++;
b[i].n=count;
b[i].num=t;
}
cout<<endl;
MaxNum=b[0].n;
int NUM;
for(int p=1;p<n;p++) //选取众数
if(b[p].n>MaxNum)
{
MaxNum=b[p].n;
NUM=b[p].num;
}
cout<<"出现次数最多的数字是:"<<NUM<<endl<<"共出现:"<<MaxNum<<"次"<<endl;
}
int main()
{
fun();
return 0;
}
热心网友
时间:2022-06-26 06:13
给个思路你吧。可以先计算每个数出现的次数,再找次数最多的那个或几个数追问用什么代码记录出现的次数,我只能写出有1个数出现2次的,3次就写不出来了= =
热心网友
时间:2022-06-26 06:13
可以先排个序,再按从小到大找追问排序我会,可是我只能用其中一个数慢慢等于第二个数,等于第三个就会混乱了,不会写了= =
热心网友
时间:2022-06-26 06:14
楼上说得蛮好的,我就直接酱油走过了。排序比较简单好理解,要我就选择这个了……