1 / 20
文档名称:

2016蓝桥杯C语言算法题.doc

格式:doc   大小:21KB   页数:20页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

2016蓝桥杯C语言算法题.doc

上传人:wz_198614 2017/6/14 文件大小:21 KB

下载得到文件列表

2016蓝桥杯C语言算法题.doc

文档介绍

文档介绍:2016 蓝桥杯 C 语言算法题/* 算法训练新生舞会问题描述新生舞会开始了。 n 名新生每人有三个属性:姓名、学号、性别。其中,姓名用长度不超过 20 的仅由大小写字母构成的字符串表示,学号用长度不超过 10 的仅由数字构成的字符串表示,性别用一个大写字符‘F’或‘M’表示。任意两人的姓名、学号均互不相同。换言之,每个人可被其姓名或学号唯一确定。给出 m 对两人的信息(姓名或学号) ,判断他们是否能共舞。两人能共舞的充要条件为两人性别相异。输入格式第一行一个整数 n( 2<=n<=1000 ) ,表示学生人数。接下来的 n 行每行依次包含一名新生的姓名、学号、性别,分别用一个空格隔开。之后的一行是一个整数 m(1<=m<=1000) , 表示询问的数目。接着的m 行每行包含两个信息(姓名或学号) ,保证两个信息不属于同一人, 中间用一个空格隔开。输出格式对于每个询问输出一行, 如果两人可以共舞, 输出一个大写字母‘Y’, 否则输出一个大写字母‘N’。样例输入 4 John 10M Jack 11M Kate 20F Jim 21M3 John 11 20 Jack Jim Jack 样例输出 NYN 提示可以把名字和学号都当成字符串处理。可以按以下流程实现。#include<> #include<> using namespace std; struct tstudent { char name[21]; char num[21]; char sex; }; void readdata(tstudent student[], int n) { 输入 N 个学生的信息} intfindstudent(tstudent student[], int n, char* data) { if (data == NULL) return -1; 判断是否有某个学生的学号或名字等于 data , 如果有, 函数返回该学生在 student 数组中的序号,否则返回-1 } void solve(tstudent student[], int n, int m) { char x[21], y[21]; for (inti=0; i<m; i++) { 输入两个人的信息 X、Y 。通过调用 findstudent 函数判断这两个人能否成为舞伴}} intmain() { int n, m; tstudentstudent[1010]; cin>>n; readdata(student, n); cin>>m; solve(student, n, m); } */ #include <> #include <> #define MaxSize 1000+5 typedef struct { char name[21]; char num[21]; char sex; }tstudent; void readdata(tstudent student[], int n) { inti; // 输入 N 个学生的信息 for(i=0;i<n;i++) { scanf("%s %s %c",student[i].name,student[i].num,&student[i].sex); } } intfindstudent(tstudent student[], int n, char* data) { inti; if (data == NULL) { return -1; } // 判断是否有某个学生的学号或名字等于 data ,如果有,函数返回该学生在 student 数组中的序号,否则返回- for(i=0;i<n;i++) { if(!strcmp(data,student[i].name)||!strcmp(data,student[i].num)) return i;} return -1; } void solve(tstudent student[], int n, int m) { char x[21], y[21]; inti,a,b; for (i=0; i<m; i++) { // 输入两个人的信息 X、Y。通过调用 findstudent 函数判断这两个人能否成为舞伴 scanf("%s %s",x,y); if((a=findstudent(student,n,x))!=-1&&(b=findstudent(student,n,y))!= -1) { if(student[a].sex!=