首页 > 试题广场 >

统计同成绩学生人数

[编程题]统计同成绩学生人数
  • 热度指数:11723 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
读入N名学生的成绩,将获得某一给定分数的学生人数输出。

输入描述:
测试输入包含若干测试用例,每个测试用例的格式为


第1行:N
第2行:N名学生的成绩,相邻两数字用一个空格间隔。
第3行:给定分数

当读到N=0时输入结束。其中N不超过1000,成绩分数为(包含)0到100之间的一个整数。


输出描述:
对每个测试用例,将获得给定分数的学生人数输出。
示例1

输入

3
80 60 90
60
2
85 66
0
5
60 75 90 55 75
75
0

输出

1
0
2
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        while (scan.hasNext()) {
            int N = scan.nextInt();// 输入的人数
            if (N == 0) {// 如果检测到输入的人数为0 则结束
                return;
            }
            int[] arr = new int[N];// 保存N个人的分数
            for (int i = 0; i < arr.length; i++) {
                arr[i] = scan.nextInt();
            }
            int T = scan.nextInt();// 目标分数 输出击中目标分数的个数
            int count = 0;
            for (int i = 0; i < arr.length; i++) {
                if (T == arr[i]) {
                    count++;
                }
            }
            System.out.println(count);
        }
    }
}
发表于 2018-05-14 16:55:10 回复(0)

python两行代码就够了。




while True:
    try:
        a,b,c=int(input()),list(map(int,input().split())),int(input())
        print(b.count(c))


    except:
        break
发表于 2017-10-06 22:19:23 回复(1)
#include<iostream>
#include<map>
using namespace std;
int main()
{
    int N;
    while(cin>>N)
    {
        if(N==0)
            return 0;
        else
        {
            map<int,int> mp;
            int score,goal;
            for(int i=0;i<N;i++)
            {
                cin>>score;
                mp[score]++;
            }
            cin>>goal;
            map<int,int>::iterator it=mp.find(goal);
            cout<<it->second<<endl;
        }
    }
    return 0;
}

使用map挺简单的。
发表于 2019-03-22 17:07:39 回复(0)
真诚求教,为什么超时?
#include<iostream>
using namespace std;

int main()
{
    int N;
    cin>>N;
    while (N!=0)
    {
        int t,grade;
        int data[101]={0};
        for(int i=0;i<N;i++){
            cin>>t;
            data[t]+=1;
        }
        cin>>grade;
        cout<<data[grade]<<endl;
        //delete [] data;
        cin>>N;
    }
    return 0;
}
发表于 2018-03-09 23:55:37 回复(9)
#include<stdio.h>
#include<algorithm>
using namespace std;

int main()
{
    int n;
    while(scanf("%d",&n)!=EOF)
    {
        int Hash[101]={0};//利用哈希存储每个分数出现的次数
        for(int i=0;i<n;i++)
        {
            int x;
            scanf("%d",&x);//定义的X相当于输入的每个分数,然后利用哈希进行统计
            Hash[x]++;
        }
        int x;
        scanf("%d",&x);//输入你需要查询的分数统计相应的人数 利用哈希返回
        printf("%d\n",Hash[x]);
    }
    return 0;

}
发表于 2018-02-23 13:00:39 回复(0)

#include<stdio.h>
int main()
{
    int i,d;
    int N;
    while(scanf("%d",&N)!=EOF)
    {
        int score[101]={0};
        if(N==0) return 0;
        for(i=0;i<N;i++)
        {
            scanf("%d",&d);
            score[d]++;
        }
        scanf("%d",&d);
        printf("%d\n",score[d]);
    }
    return 0;
}


发表于 2017-02-26 20:14:06 回复(0)
#include<stdio.h>
int main()
{
    int i,n,a[1000],number,num;
    while(scanf("%d",&n)!=EOF)
    {
        if(n==0) break;
        for(i=0;i<n;i++)
            scanf("%d",&a[i]);
        scanf("%d",&number);
        num=0;
        for(i=0;i<n;i++)
            if(a[i]==number)
                num++;
        printf("%d\n",num);
    }
}

发表于 2020-04-13 17:32:03 回复(0)
Java 解法
import java.util.HashMap;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()) {
            int n = scanner.nextInt();
            HashMap<Integer, Integer> map = new HashMap<>();
            for (int i = 0; i < n; i++) {
                map.merge(scanner.nextInt(),1,Integer::sum);
            }
            System.out.println(map.getOrDefault(scanner.nextInt(),0));
        }
    }
}



发表于 2020-03-06 15:13:34 回复(0)
#include <iostream>
using namespace std;
int main()
{
	int n = 0, scores[1000] = { 0 }, score = 0, cnt = 0;
	while (cin>>n && 0 != n)
	{
		cnt = n; while (cnt) { cin >> scores[--cnt]; } cin >> score;
		while (n--) { if (score == scores[n]) ++cnt; } cout << cnt << endl;
	}
	return 0;
}

发表于 2020-02-20 10:31:29 回复(0)
#include<iostream>
using namespace std;
int main(){
    int n;
    while(cin>>n){
        if(n==0)
            break;
        int grade[101]={0};
        int a;
        for(int i=0;i<n;i++){
            cin>>a;
            grade[a]++;
        }
        int m;
        cin>>m;
        cout<<grade[m]<<endl;
    }
    return 0;
}

发表于 2020-01-12 15:27:51 回复(0)
hash 3ms 374k
#include <stdio.h>
int main()
{
    int N,k,num;
    while(scanf("%d",&N)!=EOF&&N!=0)
    {
        int hash[101]={0};
        for(int i=0;i<N;++i)
        {
            scanf("%d",&k);
                ++hash[k];
        }
        scanf("%d",&num);
        printf("%d\n",hash[num]);
    }
    return 0;
}
发表于 2018-01-13 18:28:26 回复(0)
#include <iostream>
#include <map>
using namespace std;
const int N = 1010;
int n;
map<int, int> score;
int main() {

    while (cin >> n) {
        if (n == 0) break;
        score.clear();
        for (int i = 0; i < n; i++) {
            int x;
            cin >> x;
            score[x]++;
        }
        int grade;
        cin >> grade;
        cout << score[grade] << endl;
    }




}
// 64 位输出请用 printf("%lld")

发表于 2023-03-18 12:48:33 回复(0)
#include<bits/stdc++.h>
using namespace std;

int main(){
    int n;
    while(cin>>n){
        int a[n];
        for(int i=0;i<n;i++){
            cin>>a[i];
        }
        int m;
        cin>>m;
        int answer=0;
        for(int i=0;i<n;i++){
            if(a[i]==m){
                answer++;
            }
        }
        cout<<answer<<endl;
    }
    return 0;
}
献丑了
发表于 2022-10-12 17:27:26 回复(3)
#include <iostream>
#include<unordered_map>
using namespace std;
int main() {
    int n;
    while(cin>>n&&n!=0){
        unordered_map<int,int> student;
        for(int i=0;i<n;i++){
            int key;
            cin>>key;
            student[key]++;
        }
        int key;
        cin>>key;
        int ans = student[key];
        cout<<ans<<endl;
    }
    return 0;
}

编辑于 2024-03-30 14:51:13 回复(0)
#include <bits/stdc++.h>
using namespace std;

int gei[10000];

int main() {
    int n;
    int zushu=0;
    map<int,int>mp;
    while(cin>>n&&n!=0){
        for(int i=0;i<n;i++){
            int score;
            cin>>score;
            mp[score]++;
        }
        int g;
        cin>>g;
        gei[zushu++]=g;
    }
    for(int j=0;j<zushu;j++){
        if(mp.find(gei[j])!=mp.end()){
            cout<<mp[gei[j]]<<endl;
        }
        else{
            cout<<"0"<<endl;
        }
    }
}

编辑于 2024-03-18 15:40:45 回复(0)
#include<stdio.h>
#include<set>
using namespace std;
int main(){
    int N;
    multiset<int> Myset;
    scanf("%d",&N);
    int tmp;
    for(int i = 0;i<N;i++){
        scanf("%d",&tmp);
        Myset.insert(tmp);
    }
    scanf("%d",&tmp);
    printf("%d",Myset.count(tmp));
}


编辑于 2024-03-05 10:40:15 回复(0)
#include <iostream>
#include <map>
using namespace std;

int main() {
    int n;
    while (cin >> n && n != 0) {
        map<int, int>number;
        while (n--) {
            int score;
            cin >> score;       //读入成绩分数
            number[score]++;    //分数对应人数累加
        }
        int score;
        cin >> score;
        cout << number[score] << endl;
    }
    return 0;
}

发表于 2024-02-20 17:31:02 回复(0)
#include <cstdio>

int main(){
    int n;
    int arr[1001];
    int target;
    while(scanf("%d",&n) != EOF){
        if(n <= 0){
            //do nothing
        }else{ //n>0
            for(int i = 0; i < n; ++i){
                scanf("%d",&arr[i]);
            }
            scanf("%d",&target);
            int num = 0;
            for(int i = 0; i < n; ++i){
                if(arr[i] == target){
                    num++;
                }
            }
            printf("%d\n",num);
        }
    }
    return 0;
}

发表于 2023-03-12 21:18:47 回复(0)
#include<iostream>
using namespace std;
#include<string>
#include<algorithm>
int main()
{
    int n;
    while(cin>>n)
    {
        int a[n];
        for(int i=0;i<n;i++)
        cin>>a[i];
        int x;int sum=0;
        cin>>x;
        for(int i=0;i<n;i++)
        {
            if(a[i]==x)
            sum++;
        }
        cout<<sum<<endl;
    }
    return 0;
 } 
发表于 2023-03-03 21:29:30 回复(0)
#include <iostream>
#include <unordered_map>
using namespace std;

int main() {
   int n;
   unordered_map<int, int> m;
   while(cin >> n && n){
    while(n--){
        int x;
        cin >> x;
        m[x] ++;
    }
    int x;
    cin >> x;
    cout << m[x] << endl;
    m.clear();
   }
}
发表于 2023-02-19 18:09:25 回复(0)