解题思路:直接按题目意思写代码

注意事项:

参考代码:

#include<iostream>

#include<cstring>

using  namespace  std;


struct  tstudent

{

    char  name[21];

    char  num[21];

    char  sex;

};


void  readdata(tstudent  student[],  int  n)

{

    // 输入N个学生的信息

    for(int i=0; i<n; i++)

        cin>>student[i].name>>student[i].num>>student[i].sex;

}


int  findstudent(tstudent  student[],  int  n,  char*  data)

{

    if  (data  ==  NULL)

        return  -1;


    //判断是否有某个学生的学号或名字等于data,如果有,函数返回该学生在student数组中的序号,否则返回-1

    for(int i=0; i<n; i++)

    {

        if(strcmp(student[i].name,data)==0||strcmp(student[i].num,data)==0)

            return i;

    }

    return -1;


}


void  solve(tstudent  student[],  int  n,  int  m)

{

    char  x[21],  y[21];

    for  (int  i=0;  i< m;  i++)

    {

        //输入两个人的信息X、Y。通过调用findstudent函数判断这两个人能否成为舞伴

        cin>>x>>y;

        int x1=findstudent(student,n,x),y1=findstudent(student,n,y);

        if(x1>-1&&y1>-1&&x1!=y1&&student[x1].sex!=student[y1].sex)

            cout<<"Y"<<endl;

        else

            cout<<"N"<<endl;

    }

}


int  main()

{

    int  n,  m;

    tstudent  student[1010];


    cin>> n;


    readdata(student,  n);

    cin>> m;

    solve(student,  n,  m);

}

/**

4

John 10 M

Jack 11 M

Kate 20 F

Jim 21 M

3

John 11

20 Jack

Jim Jack

*/


点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论