输入格式: 输入第一行给出一个正整数 N(≤1000),随后 N 行,每行给出一个考生的信息:准考证号 试机座位号 考试座位号。其中准考证号由 16 位数字组成,座位从 1 到 N 编号。输入保证每个人的准考证号都不同,并且任何时候都不会把两个人分配到同一个座位上。 考生信息之后,给出一个正整数 M(≤N),随后一行中给出 M 个待查询的试机座位号码,以空格分隔。 输出格式: 对应每个需要查询的试机座位号码,在一行中输出对应考生的准考证号和考试座位号码,中间用 1 个空格分隔。 输入样例: 4 3310120150912233 2 4 3310120150912119 4 1 3310120150912126 1 3 3310120150912002 3 2 2 3 4 输出样例: 3310120150912002 2 3310120150912119 1 用c语言写下代码。
时间: 2024-02-05 21:12:57 浏览: 214
```c
#include <stdio.h>
#include <string.h>
struct student {
char id[17];
int exam_seat;
int test_seat;
};
int main() {
int n, m;
scanf("%d", &n);
struct student students[n];
for (int i = 0; i < n; i++) {
scanf("%s %d %d", students[i].id, &students[i].exam_seat, &students[i].test_seat);
}
scanf("%d", &m);
int query;
for (int i = 0; i < m; i++) {
scanf("%d", &query);
for (int j = 0; j < n; j++) {
if (students[j].exam_seat == query) {
printf("%s %d\n", students[j].id, students[j].test_seat);
break;
}
}
}
return 0;
}
```
相关问题
输入的第一行给出一个正整数n(≤100),代表考点总数。随后给出n个考点的成绩,格式为:首先一行给出正整数k(≤300),代表该考点的考生总数;随后k行,每行给出1个考生的信息,包括考号(由13位整数字组成)和得分(为[0,100]区间内的整数),中间用空格分隔。
### 回答1:
这道题要求输入第一行一个正整数n(<=100),表示考点总数。随后给出n个考点的成绩,格式为:每个数占一行,其中第一个数为考点编号,长度不超过13个字符,是个字符串(可能包含空格),第二个数为该考点成绩(0 ~ 100的整数)。
随后再输入一个正整数k(<=n),表示要输出前k名的考点信息。输出格式为:输出前k名考点的考号(13个字符宽度,左对齐)、成绩、编号(不超过3个字符宽度,右对齐),并且题目要求对输出宽度稍作处理,用空格分隔开(不足宽度的,用空格补齐),将考号、成绩、编号对齐。
### 回答2:
题目描述
本题给出n个考点的考生成绩情况,需要计算每个考点的平均分和不及格人数,并输出。
输入格式
输入的第一行给出一个正整数n (0<n≤100),代表考点总数。
随后给出n个考点的成绩,格式为:
首先一行给出正整数k(0<k≤300),代表该考点的考生总数;
随后k行,每行给出1个考生的信息,包括考号(由13位整数字组成)和得分(为[0,100]区间内的整数),中间用空格分隔。
输出格式
按照输入的顺序输出每个考点的平均分和不及格人数,每行输出一个考点的信息,格式为:
考点编号 平均分 不及格人数
其中平均分精确到小数点后1位。
考点编号从1到n编号。
输入样例
3
4
1709000123456 80
1709000123457 90
1709000123458 60
1709000123459 70
5
1709001123456 100
1709001123457 70
1709001123458 80
1709001123459 90
1709001123460 45
5
1709002123456 60
1709002123457 60
1709002123458 70
1709002123459 80
1709002123460 70
输出样例
1 75.0 1
2 77.0 1
3 68.0 2
题目分析
对于本题,题目描述十分清楚,不需要其他处理。
我们一个个考点处理即可。
确定好考点编号后,我们可以依次计算每个考点的平均分、及格人数(100分及以上为及格)。然后输出即可。最后别忘了要精确到小数点后1位哦。
### 回答3:
题目描述:
本题是一道关于考试成绩的统计题目。输入n个考点的考生成绩,包括考号和得分,输出每个考点的总分、平均分和最高分最低分。
解题思路:
首先,我们需要读入一个整数n,代表考点数量,然后使用for循环读入每个考点的考生成绩。对于每个考点,我们要保存以下信息:
1. 该考点的考生总数k
2. 考生成绩信息的数组
对于每个考生的考号和得分,我们可以定义一个结构体来保存。结构体定义如下:
struct Student {
char id[20];
int score;
};
然后,对于每个考点,我们先读入考生数量k,然后使用for循环读入每个考生的考号和得分,保存到对应的结构体数组中。读入完成后,我们可以统计该考点的总分、平均分、最高分和最低分。具体实现如下:
int totalScore = 0; // 总分
int maxScore = -1; // 最高分
int minScore = 101; // 最低分
for (int i = 0; i < k; i++) {
totalScore += students[i].score; // 统计总分
if (students[i].score > maxScore) {
maxScore = students[i].score; // 更新最高分
}
if (students[i].score < minScore) {
minScore = students[i].score; // 更新最低分
}
}
最后,输出该考点的总分、平均分、最高分和最低分即可。
完整代码如下:
输入第一行给出一个正整数 n(≤1000),随后 n 行,每行给出一个考生的信息:准考证号 试机座位号 考试座位号。其中准考证号由 16 位数字组成,座位从 1 到 n 编号。输入保证每个人的准考证号都不同,并且任何时候都不会把两个人分配到同一个座位上。 考生信息之后,给出一个正整数 m(≤n),随后一行中给出 m 个待查询的试机座位号码,以空格分隔。
### 回答1:
题目描述:
输入一个正整数n(≤100),接下来n行,每行给出一个考生的信息:准考证号、试机座位号、考试座位号。其中准考证号由16位数字组成,座位从1到n编号。输入保证每个人的准考证号都不同,并且任何时候都不会把两个人分配到同一个座位上。考生信息之后,给出一个正整数m(≤n),随后一行中给出m个待查询的试机座位号码,以空格分隔。
输入样例:
4
3310120150912233 2 4
3310120150912119 4 1
3310120150912126 1 3
3310120150912002 3 2
2
3 4
输出样例:
3310120150912126 1 3
3310120150912233 2 4
解题思路:
本题需要用到结构体,将每个考生的信息存储起来,然后根据试机座位号进行查询,输出考生的信息。
具体实现见代码:
### 回答2:
这是一道简单的模拟题目,我们可以使用一个长度为 n+1 的数组 seats,来记录每个座位对应的准考证号。
输入考生信息时,将每个考生的准考证号存入 seats 数组的对应下标处即可。
查询时,我们只需依次遍历待查询的试机座位号码,输出该座位对应的考生的准考证号即可。
下面是该题的一种可能的解法,并附有详细注释。
```
#include <iostream>
using namespace std;
int main() {
// n 为考生人数,m 为待查询座位号数
int n, m;
cin >> n;
// 初始化座位数组
string seats[n+1];
for (int i = 0; i <= n; i++) {
seats[i] = "";
}
// 输入考生信息,并将准考证号存入 seats 数组
for (int i = 0; i < n; i++) {
string id;
int test_seat, exam_seat;
cin >> id >> test_seat >> exam_seat;
// 座位号作为下标,将准考证号存入 seats 数组
seats[test_seat] = id;
}
cin >> m;
// 依次查询每个试机座位号对应的准考证号,并输出
for (int i = 0; i < m; i++) {
int test_seat;
cin >> test_seat;
cout << seats[test_seat] << endl;
}
return 0;
}
```
需要注意的是,输入时,我们并不需要将考试座位号存入数组中,因为输入保证任何时候都不会将两个人分配到同一个座位上,所以只需要存储试机座位号即可。同时,座位号从 1 开始,因此需要将数组 seats 的长度设为 n+1。
### 回答3:
本题的主要任务是通过输入的考生信息,建立一个座位号和准考证号之间的对应关系,并通过输入的试机座位号码查询出相应的准考证号。
首先,我们需要定义一个用于存储座位号和准考证号对应关系的数据结构,可以使用字典(Python 中的 dict 类型)进行存储。将输入的考生信息逐一读入,按照试机座位号作为键,准考证号作为值,存储到字典中。
接着,我们可以通过输入待查询的试机座位号码,逐一在字典中进行查找,找到对应的准考证号并输出即可。
需要注意的是,输入数据中给出的座位号从 1 开始编号,而在字典中我们需要以 0 开始编号,因此需要进行一定的转换。
下面是完整的 Python 代码实现:
n = int(input())
data = {}
for i in range(n):
card_number, test_seat_number, exam_seat_number = input().split()
data[int(test_seat_number)-1] = card_number # 将试机座位号映射为字典的键,准考证号映射为字典的值
m = int(input())
query = input().split()
for i in range(m):
test_seat_number = int(query[i]) - 1 # 输入的试机座位号应该减去 1,转换为字典中的键
print(data[test_seat_number]) # 直接在字典中查找准考证号并输出
阅读全文