问题标题: 酷町堂:成绩统计(score)

0
0
已解决
万韧山
万韧山
初级天翼
初级天翼
#include<bits/stdc++.h>
using namespace std;
int n,t[500005],a[10005],p,q,maxn=-0x3f3f3f3f,minn=50005,maxa=-0x3f3f3f3f,mina=50005,cnt,ans,num;
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		t[a[i]]++;
		maxn=max(t[a[i]],maxn);
		minn=min(t[a[i]],minn);
	}
	cin>>p>>q;
	/*
	1.全校最低分、最高分的成绩及人数;
	2.同分最多的成绩和人数,如果相同,依次由低分到高分输出;
	3.分值p和q之间(包含p和q)人数。
	*/
	for(int i=1;i<=n;i++){
		if(a[i]<mina) mina=a[i];
		if(a[i]>maxa) maxa=a[i];
	}
	cout<<mina<<' '<<t[mina]<<endl;
	cout<<maxa<<' '<<t[maxa]<<endl;
	int t1,t2,t3,t4;
	for(int i=1;i<=500;i++){
		if(t[i]==maxn){
			t1=i;
			t2=t[i];
			break;
		}
	}
	for(int i=1;i<=500;i++){
		if(t[i]==minn){
			t3=i;
			t4=t[i];
		}
	}
	cout<<t1<<" "<<t2<<" "<<t3<<" "<<t4<<endl;
	for(int i=1;i<=n;i++){
		if(a[i]>=p&&a[i]<=q) cnt++;
	}
	cout<<cnt;
	return 0;
}

WA0

样例通过

万韧山在2022-10-25 09:48:10追加了内容
#include<bits/stdc++.h>
using namespace std;
int n,t[500005],a[10005],p,q,maxn=-0x3f3f3f3f,maxt=-0x3f3f3f3f,minn=50005,maxa=-0x3f3f3f3f,mina=50005,cnt,ans,num;
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		t[a[i]]++;
		maxn=max(t[a[i]],maxn);
		minn=min(t[a[i]],minn);
		maxt=max(maxt,t[a[i]]);
	}
	cin>>p>>q;
	/*
	1.全校最低分、最高分的成绩及人数;
	2.同分最多的成绩和人数,如果相同,依次由低分到高分输出;
	3.分值p和q之间(包含p和q)人数。
	*/
	for(int i=1;i<=n;i++){
		if(a[i]<mina) mina=a[i];
		if(a[i]>maxa) maxa=a[i];
	}
	cout<<mina<<' '<<t[mina]<<endl;
	cout<<maxa<<' '<<t[maxa]<<endl;
	for(int i=1;i<=500;i++){
		if(t[i]==maxt){
			cout<<i<<" "<<t[i]<<" ";
		}
	}
	cout<<endl;
	for(int i=1;i<=n;i++){
		if(a[i]>=p&&a[i]<=q) cnt++;
	}
	cout<<cnt;
	return 0;
}

@熊潇然 

万韧山在2022-10-25 09:48:24追加了内容

90分


0
已采纳
熊潇然
熊潇然
初级启示者
初级启示者

谁说相同的只有2个

定义maxt

maxt=max(maxt,t[a[i]])//算出最多相同分数的人数

25~37行改成遍历0~500,如果maxt==t[i],输出i和t[i]

采纳我!!!

0
0
姚天宇
姚天宇
高级光能
高级光能

看题:**第三行多个由空格分隔的正整数,对应多个相同分数最多的成绩及人数**

没有具体说是2个。

我要回答