【L1-005 考试座位号】

L1-005 考试座位号

/*
输入第一行给出一个正整数 N(≤1000)
随后 N 行,每行给出一个考生的信息:准考证号 试机座位号 考试座位号。
其中准考证号由 16 位数字组成,座位从 1 到 N 编号。
输入保证每个人的准考证号都不同,
并且任何时候都不会把两个人分配到同一个座位上。

即:先输入学号,试机号,考试号,再查询
由试机座位号码,查出考试座位号码
*/

一,思路

本题的要求主要是,输入数据与查询数据。
输入N条数据,由于一条数据中包含三个数据元素,于是定义一个结构体来记录一条数据,再由要输入N条数据,所以定义的是一个结构体数组。
查询数据时,输入要查询的条数n,通过n次循环输入试验机号,再由一个二重嵌套循环将输入的num1与学生记录中的num1比较。

二,代码

#include<stdio.h>
#include<string.h>

int main(){
	
	struct student{
		char number[18];//字符串数组设大一点,防止溢出 
		int num1,num2;
	}stu[1001]; 
	
	int n,i,j;//n代表要录入的学生信息条数 
	scanf("%d",&n);
	
	for(i=0;i<n;i++){//用for循环录入信息 
		scanf("%s %d %d",&stu[i].number,&stu[i].num1,&stu[i].num2);
	}
	int k;//k是需要查询的信息条数 
	int a[1001];//数组a用于记录试机号,从而查出考试号 
	scanf("%d",&k); 
	
	for(i=0;i<k;i++){//输入要查询的试机号 
		scanf("%d",&a[i]);
	} 
	for(i=0;i<k;i++){//比较,把输入的试机号与stu[]中的记录比较 
		for(j=0;j<n;j++){//要用嵌套循环比较 
			if(a[i]==stu[j].num1)
			printf("%s %d\n",stu[j].number,stu[j].num2);//输出对应的学号和考试号 
		}
	}
	return 0;
}

三,总结

1.结构体数组保存学生信息
2.用另一个数组保存要查询的信息
3.利用嵌套循环进行比较输出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值