小凡点名

老师让小凡来完成点名,让小凡在早自习的时候就点好名。
老师给了小凡名单,小凡只要照着名单点名就好了是不是很简单啊。

输入
输入有多组数据,直到文件结束。

每组测试数据有三行,第一行为两个整数m, n(50 >= m >= n)。

第二行有m个名字,名字之间用空格隔开,是小凡班上同学的名单。
后面有n个名字是来上课的同学。(名字间用空格隔开。名字的长度不超过20个字符。)

输出
按照第一行的名单,每个人对应输出是否到了。
到的人输出Yes,没到的人输出No。

样例输入
3 2
Bob Marry Jam
Bob Jam
2 2
Limeme Lintianzhi
Limeme Lintianzhi
样例输出
Yes
No
Yes
Yes
Yes


#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
// // 拷贝到平台的时候把my_fuction_lib.h注释掉.
//#include "my_fuction_lib.h"

//在此下方插入自定义函数对的声明:

//主函数main
int main()
{
    //复制模版式删除这个或者再下面一个
    int n, m, i, j;
    char Roll[50][50];
    char Roll_call[50][50];

    while (scanf("%d%d", &m, &n) != EOF)
    {
        // for(int i = 0;i<50;i++)
        // {
        //     if(scanf("%s",Roll[i]) == EOF)
        //         break;
        // }

        for (i = 0; i < m; i++)
            scanf("%s", Roll[i]);
        //既然不能只依靠scanf()来实现跳出该for,那就再for里的判断条件直接在读取条数上做个限制.
        //当然我起初的想法是想通过读入函数直接就达到结束读入的目的(幸运的是这个题提前知道了m,n(各部分会读入名字字符串的数目))
        for (i = 0; i < n; i++)
            scanf("%s", Roll_call[i]);

        for (i = 0; i < m; i++)
        {
            for (j = 0; j < n; j++)
            {

                if ( ! strcmp(Roll[i], Roll_call[j]) )
                {
                    printf("Yes\n");
                    break;
                }
            }
            if (j == n)//不加判断的话一定会输出No的.非break跳出内层for时,j++会到n
                printf("No\n");
        }
    }
    return 0;
}
posted @ 2021-12-28 15:55  xuchaoxin1375  阅读(8)  评论(0)    收藏  举报  来源