0
点赞
收藏
分享

微信扫一扫

1041 考试座位号(附详细注释,逻辑分析)


写在前面

  • 实现思路
  • 结构体封装学生元信息,试机座位号作为下标
  • long long 处理准考证号(16 位数字),也可用string
  • 题目较为简单,熟练情况下10分钟a题

测试用例

input:
4
3310120150912233 2 4
3310120150912119 4 1
3310120150912126 1 3
3310120150912002 3 2
2
3 4

output:
3310120150912002 2
3310120150912119 1

ac代码

  • C语言版​​long long​

#include<cstdio>
const int maxn = 1010;
struct Student
{
long long id;
int examSeat;
} testSeat[maxn];

int main()
{
int n, m, seat, examSeat;
long long id;
scanf("%d", &n);
for(int i=0; i<n; i++)
{
scanf("%lld%d%d", &id, &seat, &examSeat);
testSeat[seat].id = id;
testSeat[seat].examSeat = examSeat;
}

scanf("%d", &m);
for(int i=0; i<m; i++)
{
scanf("%d", &seat);
printf("%lld %d\n", testSeat[seat].id, testSeat[seat].examSeat);
}

return 0;
}

  • C++版​​string​​···个人尝试···

#include<iostream>
using namespace std;

const int maxn = 1010;
struct Student
{
string id;
int examSeat;
} testSeat[maxn];

int main()
{
int n, m, seat, examSeat;
char id[16];
scanf("%d", &n);
for(int i=0; i<n; i++)
{
scanf("%s%d%d", id, &seat, &examSeat);
testSeat[seat].id = id;
testSeat[seat].examSeat = examSeat;
}

scanf("%d", &m);
for(int i=0; i<m; i++)
{
scanf("%d", &seat);
printf("%s %d\n", testSeat[seat].id.c_str(), testSeat[seat].examSeat);
}
return 0;
}

参考代码

  • ​​C++ string 二维数组版···值得参考···​​

#include <iostream>
using namespace std;
int main() {
string stu[1005][2], s1, s2;;
int n, m, t;
cin >> n;
for(int i = 0; i < n; i++) {
cin >> s1 >> t >> s2;
stu[t][0] = s1;
stu[t][1] = s2;
}
cin >> m;
for(int i = 0; i < m; i++) {
cin >> t;
cout << stu[t][0] << " " << stu[t][1] << endl;
}
return 0;
}


举报

相关推荐

0 条评论