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

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

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


输入格式:


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


输出格式:


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


样例:">样例:">样例:">样例:">样例:">样例:">样例:">输入样例:


1. 10
2. 60 75 90 55 75 99 82 90 75 50
3. 3 75 90 88

结尾无空行


输出样例:


3 2 0

结尾无空行


这题一眼看上去不知如何下手,简单分析后发现很容易:


1.我用一个数组(a[N])来存放输入的学生成绩,并且都赋值为0


2.再用一个数组(b[K])来存放要查询的学生的成绩


3.因为b[i]的值是a[N]的下标,那么题目就简单了,详情请看代码部分:


C语言:

#include <stdio.h>
int main() {
  int a[101] = {0};//分数段数组
  int N, number;
  scanf("%d", &N);
  for (int i = 0; i < N; i++) {
    scanf("%d", &number);
    a[number]++;
  }
  int K;
  scanf("%d", &K);
  int b[K];//输入成绩的数组
  for (int i = 0; i < K; i++) {
    scanf("%d", &b[i]);
  }
  for (int i = 0; i < K; i++) {
    if (i < K - 1)
      printf("%d ", a[b[i]]);
    else
      printf("%d", a[b[i]]);
  }
  return 0;
}

C++:

#include <iostream>
using namespace std;
int main() {
  int a[101] = {0};//分数段数组
  int N, number;
  cin >> N;
  for (int i = 0; i < N; i++) {
    cin >> number;
    a[number]++;
  }
  int K;
  cin >> K;
  int b[K];//输入成绩的数组
  for (int i = 0; i < K; i++) {
    cin >> b[i];
  }
  for (int i = 0; i < K; i++) {
    if (i < K - 1)
      cout << a[b[i]] << " ";
    else
      cout << a[b[i]];
  }
  return 0;
}

代码简单,希望对大家有帮助。

相关文章
|
7月前
|
算法 测试技术 C++
【动态规划】【图论】【C++算法】1575统计所有可行路径
【动态规划】【图论】【C++算法】1575统计所有可行路径
|
7月前
|
人工智能 算法 测试技术
【动态规划】【二分查找】C++算法 466 统计重复个数
【动态规划】【二分查找】C++算法 466 统计重复个数
|
7月前
|
算法 测试技术 C#
C++二分查找:统计点对的数目
C++二分查找:统计点对的数目
|
算法 测试技术 C#
C++前缀和算法的应用:统计中位数为 K 的子数组
C++前缀和算法的应用:统计中位数为 K 的子数组
|
5月前
|
NoSQL Redis C++
c++开发redis module问题之在复杂的Redis模块中,特别是使用第三方库或C++开发时,接管内存统计有哪些困难
c++开发redis module问题之在复杂的Redis模块中,特别是使用第三方库或C++开发时,接管内存统计有哪些困难
|
7月前
|
C++
41.用c++编写程序:从键盘上任意输20个1-99之间的整数,分别统计其个位数0-9的数字各有多少
41.用c++编写程序:从键盘上任意输20个1-99之间的整数,分别统计其个位数0-9的数字各有多少
67 0
|
7月前
|
算法 测试技术 C#
【字典树】【KMP】【C++算法】3045统计前后缀下标对 II
【字典树】【KMP】【C++算法】3045统计前后缀下标对 II
|
7月前
|
测试技术 C++
【PTA】​L1-003 个位数统计​ (C++)
【PTA】​L1-003 个位数统计​ (C++)
152 0
【PTA】​L1-003 个位数统计​ (C++)
|
7月前
|
算法 Python C++
C/C++每日一练(20230425) 成绩分布、汇总区间、矩阵置零
C/C++每日一练(20230425) 成绩分布、汇总区间、矩阵置零
68 0
C/C++每日一练(20230425) 成绩分布、汇总区间、矩阵置零
|
7月前
|
人工智能 算法 测试技术
【字符串】【C++算法】828.统计子串中的唯一字符
【字符串】【C++算法】828.统计子串中的唯一字符