PAT 1041
输入格式:
输入第一行给出一个正整数N(<=1000),随后N行,每行给出一个考生的信息:“准考证号 试机座位号 考试座位号”。其中准考证号由14位数字组成,座位从1到N编号。输入保证每个人的准考证号都不同,并且任何时候都不会把两个人分配到同一个座位上。
考生信息之后,给出一个正整数M(<=N),随后一行中给出M个待查询的试机座位号码,以空格分隔。
输出格式:
对应每个需要查询的试机座位号码,在一行中输出对应考生的准考证号和考试座位号码,中间用1个空格分隔。
输入样例:4 10120150912233 2 4 10120150912119 4 1 10120150912126 1 3 10120150912002 3 2 2 3 4输出样例:
10120150912002 2 10120150912119 1代码:
#include<iostream>
using namespace std;
int main()
{
int num;
cin >> num;
int n = 0;
char r[1000][14];
int r1[1000];
while (n < num){
char s[14];
int n1;
int n2;
cin >> s >> n1 >> n2;
for (int i = 0; i < 14; i++)
r[n1][i] = s[i];
r1[n1] = n2;
n++;
}
int num1;
cin >> num1;
int *s = new int[num];
n = 0;
while (n < num1){
int x;
cin >> x;
s[n] = x;
n++;
}
for (int i = 0; i < num1; i++){
for (int m = 0; m < 14; m++)
cout << r[s[i]][m];
cout << " " << r1[s[i]]<<endl;
}
return 0;
}
一开始把题目想的太复杂,还用了动态二维数组。。。其实只要将输入的试机座位号作为数组的索引即可,本题并没有什么技术含量。