原题:
输入一些学生的分数,哪个分数出现的次数最多?如果有多个并列,从小到大输出。
任务1,分数为不超过100的非负整数。(题眼。)
任务2,分数为不超过100.00的非负实数。保留两位小数(两位的处理)
依照惯例,先看看我的垃圾代码。
#include <stdio.h>
#include <string.h>
#include <math.h>
int b[100];
double a[100],c[100];
int main()
{
int i =0,flag,j,al,max=0,k=0,cl;
double t;
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
while(scanf("%lf",&t)==1)
{
flag=0;
for(j=0;j<i;j++)
{
if(fabs(a[j]-t)<=0.000000001)
{
b[j]++;
flag =1;
if(b[j]>max)
{
max=b[j];
memset(c,0,sizeof(c));
k=0;
c[k++]=a[j];
}
else if(b[j]==max)
{
c[k++]=a[j];
}
break;
}
}
if(!flag)
{
a[i]=