1038 统计同成绩学生 (20 分)

题目:1038 统计同成绩学生 (20 分)

本题要求读入 N 名学生的成绩,将获得某一给定分数的学生人数输出。

输入格式:

输入在第 1 行给出不超过 1 的正整数 N,即学生总人数。随后一行给出 N 名学生的百分制整数成绩,中间以空格分隔。最后一行给出要查询的分数个数 K(不超过 N 的正整数),随后是 K 个分数,中间以空格分隔。

输出格式:

在一行中按查询顺序给出得分等于指定分数的学生人数,中间以空格分隔,但行末不得有多余空格。

输入样例:

10
60 75 90 55 75 99 82 90 75 50
3 75 90 88

输出样例:

3 2 0

思路:

  • 类似打表。设立一个可以容纳所有分数的数组,即开一个100的数组就可以了,为了保险起见可以开得比这大。
  • 每输入一个数,就将这个数作为数组下标,进行分数计入,这样可以马上得到截止目前的该分数的人数。
  • 查询指定分数的学生人数时直接代入数组下标即可。

  注意起初清空数组。

代码:

 1 #include <cstdio>
 2 #include <cstring>
 3 #include <iostream>
 4 #include <sstream>
 5 #include <cmath>
 6 #include <algorithm>
 7 #include <string>
 8 #include <stack>
 9 #include <queue>
10 #include <vector>
11 #include <map>
12 using namespace std;
13
14 int main()
15 {
16     int a[105];
17     int n, k, num;
18     memset(a, 0, sizeof(a));
19     scanf("%d", &n);
20     for(int i = 0; i < n; i++)
21     {
22         scanf("%d", &num);
23         a[num]++;
24     }
25     scanf("%d", &k);
26     for(int i = 0; i < k; i++)
27     {
28         scanf("%d", &num);
29         printf("%d", a[num]);
30         if(i != k-1)
31             printf(" ");
32     }
33     return 0;
34 }

总结:

  深知自己的不足,于是踏踏实实从最基础开始做起。这种题可以一次过,稍微难一点就要错个几次。一个人只有先正确的认识自己,才能更好的发展自己。知其能,亦知其所不能。

原文地址:https://www.cnblogs.com/Anber82/p/11328220.html

时间: 2024-10-10 21:44:51

1038 统计同成绩学生 (20 分)的相关文章

1038 统计同成绩学生 (20分)

#include <iostream> using namespace std; int main() { int n,k,g; int grade[101]={0}; cin>>n; int *k_grade=new int[100005];//稍微大一点 for(int i=0;i<n;i++) { cin>>g; grade[g]++; } cin>>k; for(int i=0;i<k;i++) { cin>>k_grade[

B1038 统计同成绩学生 (20 分)

#include<iostream> #include<cstring> using namespace std; const int maxn = 10010; int scores[100] = {0}; int main(){ int N,K; cin >> N; for(int i = 0; i < N; i++){ int score; scanf("%d", &score); if(score >= 0 &&a

P 1038 统计同成绩学生

转跳点:?? 1038 统计同成绩学生 (20分) 本题要求读入 N 名学生的成绩,将获得某一给定分数的学生人数输出. 输入格式: 输入在第 1 行给出不超过 1 的正整数 N,即学生总人数.随后一行给出 N 名学生的百分制整数成绩,中间以空格分隔.最后一行给出要查询的分数个数 K(不超过 N 的正整数),随后是 K 个分数,中间以空格分隔. 输出格式: 在一行中按查询顺序给出得分等于指定分数的学生人数,中间以空格分隔,但行末不得有多余空格. 输入样例: 10 60 75 90 55 75 99

1038 统计同成绩学生(20 分)

本题要求读入 N 名学生的成绩,将获得某一给定分数的学生人数输出. 输入格式: 输入在第 1 行给出不超过 10?5?? 的正整数 N,即学生总人数.随后一行给出 N 名学生的百分制整数成绩,中间以空格分隔.最后一行给出要查询的分数个数 K(不超过 N 的正整数),随后是 K 个分数,中间以空格分隔. 输出格式: 在一行中按查询顺序给出得分等于指定分数的学生人数,中间以空格分隔,但行末不得有多余空格. 输入样例: 10 60 75 90 55 75 99 82 90 75 50 3 75 90

【PAT】B1038 统计同成绩学生(20)(20 分)

#include<stdio.h> int arr[102]={0};//分数作为自己的下标,注意 int main(){ int N;scanf("%d",&N); for(int i=0;i<N;i++){ int temp;scanf("%d",&temp); arr[temp]++; } int N2;scanf("%d",&N2); for(int i=1;i<=N2;i++){ if(i

PAT——1038. 统计同成绩学生

本题要求读入N名学生的成绩,将获得某一给定分数的学生人数输出. 输入格式: 输入在第1行给出不超过105的正整数N,即学生总人数.随后1行给出N名学生的百分制整数成绩,中间以空格分隔.最后1行给出要查询的分数个数K(不超过N的正整数),随后是K个分数,中间以空格分隔. 输出格式: 在一行中按查询顺序给出得分等于指定分数的学生人数,中间以空格分隔,但行末不得有多余空格. 输入样例: 10 60 75 90 55 75 99 82 90 75 50 3 75 90 88 输出样例: 3 2 0 1

1038 统计同成绩学生

一.题目: 本题要求读入N名学生的成绩,将获得某一给定分数的学生人数输出. 输入格式: 输入在第1行给出不超过10^5^的正整数N,即学生总人数.随后1行给出N名学生的百分制整数成绩,中间以空格分隔.最后1行给出要查询的分数个数K(不超过N的正整数),随后是K个分数,中间以空格分隔. 输出格式: 在一行中按查询顺序给出得分等于指定分数的学生人数,中间以空格分隔,但行末不得有多余空格. 输入样例: 10 60 75 90 55 75 99 82 90 75 50 3 75 90 88 输出样例:

算法初步——哈希表B.1038统计同成绩学生

#include <bits/stdc++.h> #include<math.h> #include <string> using namespace std; const int MAX_LEN = 100005; int main(){ int n; int temp[101]; for(int i=0;i<101;++i){ temp[i] = 0; } scanf("%d",&n); int cease[n]; for(int

PAT 乙级 1038 统计同成绩的学生C++版

1038. 统计同成绩学生(20) 时间限制 250 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 本题要求读入N名学生的成绩,将获得某一给定分数的学生人数输出. 输入格式: 输入在第1行给出不超过105的正整数N,即学生总人数.随后1行给出N名学生的百分制整数成绩,中间以空格分隔.最后1行给出要查询的分数个数K(不超过N的正整数),随后是K个分数,中间以空格分隔. 输出格式: 在一行中按查询顺序给出得分等于指定分数的学生人数