您的位置:首页 > 其它

PAT-B 1041. 考试座位号(15)

2017-02-16 07:34 330 查看
题目链接在此

这个题目挺直白的,直接看代码好了。

#include<stdio.h>

struct info{
char stuId[20];
int tryId;
int seatId;
}stu[1001];

int main(){

int N;
scanf("%d",&N);

for(int i = 0; i < N; i++){
scanf("%s %d %d",&stu[i].stuId,&stu[i].tryId,&stu[i].seatId);
}

int M;
scanf("%d",&M);
for(int i = 0; i < M; i++){
int seatId;
scanf("%d",&seatId);
for(int j = 0; j < N; j++){
if(stu[j].tryId == seatId){
printf("%s %d\n",stu[j].stuId,stu[j].seatId);
break;
}
}
}

return 0;
}


改进方案

这个改进方案是《算法笔记》上的思路,这种改进既节省时间,又节省了空间。

不像上面的代码一样,结构体中有三个变量,而是只有两个(准考证号、座位号),试机座位号作为stu结构体的下标。

这样一来,省去了存储试机座位号的空间,并且不用像上面代码那样遍历stu[]数组去查询,而是直接输出 stu[试机座位号].准考证号、stu[试机座位号].座位号 的对应信息即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: