SMU 算法题:Weijie 的客人名单

题目:

去年的主人公Weijie 要离开海事大学了,于是大家决定帮他举行欢送宴会。
BobWu 很想知道究竟有多少人参加了Weijie 的欢送宴会,于是他弄来了客人名单。名单有N 行,但是其中有很多重复的名字,比方BOBWU > 和BobWu 其实指的都是同一个人,但是名单上的名字却区分大小写重复出现了。
BobWu 想知道去除重复的名字以后究竟有哪些客人。

具体可见:http://mstc.shmtu.edu.cn/oj/problem.php?cid=1003&pid=1

写了半天……结果还是问了师匠:

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

int main(void)
{
    int n, i, count, j, found;
    char cache[200][51];
    char line[255], name[51];

    gets(line);
    sscanf(line, "%d", &n);

    for (i = count = 0; i < n; ++i) {
        gets(name);
        for (j = found = 0; j < count; ++j) {
            if (stricmp(cache[j], name) == 0) {
                found = 1;
                break;
            }
        }
        if (!found) {
            strcpy(cache[count++], name);
        }
    }

    printf("%d\n", count);
    for (i = 0; i < count; ++i) {
        printf("%s\n", cache[i]);
    }

    return 0;
}

stricmp()不区分大小写,sscanf()可扩展阅读:http://www.cnblogs.com/gmh915/archive/2009/09/30/1576995.html
其实效率不高……只是应付题目而已。

植入部分

如果您觉得文章不错,可以通过赞助支持我。

如果您不希望打赏,也可以通过关闭广告屏蔽插件的形式帮助网站运作。

标签: 源码, 代码段, 题目, 算法

添加新评论