1215: 一道比较水的题

2023-04-27 21:05:36 浏览数 (2)

oj

Little A is one member of ACM team. He had just won the gold in World Final. To celebrate, he decided to invite all to have one meal. As bowl, knife and other tableware is not enough in the kitchen, Little A goes to take backup tableware in warehouse. There are many boxes in warehouse, one box contains only one thing, and each box is marked by the name of things inside it. For example, if “basketball” is written on the box, which means the box contains only basketball. With these marks, Little A wants to find out the tableware easily. So, the problem for you is to help him, find out all the tableware from all boxes in the warehouse.

Little A是ACM团队的一员。他刚刚在世界决赛中获得金牌。为了庆祝,他决定邀请所有的人吃一顿饭。由于厨房里的碗、刀等餐具不够用,小A去仓库拿备用餐具。仓库里有很多箱子,一个箱子里只装一件东西,每个箱子都标有里面物品的名称。例如,如果盒子上写着“篮球”,这意味着盒子里只有篮球。有了这些标记,小A想要很容易找到餐具。所以,你的问题是帮助他,从仓库的所有盒子里找出所有的餐具。

输入

There are many test cases. Each case contains one line, and one integer N at the first, N indicates that there are N boxes in the warehouse. Then N strings follow, each string is one name written on the box.

有许多测试用例。每个case包含一行,前面有一个整数N, N表示仓库中有N个箱子。然后是N个字符串,每个字符串是一个写在盒子上的名字。

输出

For each test of the input, output all the name of tableware.

对于每次测试的输入,输出所有餐具的名称。

样例输入 Copy

代码语言:javascript复制
3 basketball fork chopsticks 
2 bowl letter

样例输出 Copy

代码语言:javascript复制
fork chopsticks
bowl

提示

The tableware only contains: bowl, knife, fork and chopsticks

餐具只包括:碗、刀、叉和筷子

代码语言:javascript复制
#include <stdio.h>
#include <string.h>

int main() {
	int n = 0;
	char str[100] = { 0 };
	//记录四种餐具
	char s[4][20] = { "bowl","knife","fork","chopsticks" };
	while (scanf("%d", &n) != EOF) {
		getchar();
		//对每个n,四种餐具如果出现多次则只输出一次
		int flag[4] = { 0 };
		int i = 0;
		for (i = 0; i < n; i  ) {
			scanf("%s", str);
			int j = 0;
			for (j = 0; j < 4; j  ) {
				if (strcmp(str, s[j]) == 0 && flag[j] == 0) {
					printf("%s ", str);
					flag[j] = 1;
					continue;
				}
			}
		}
		printf("n");
	}
	return 0;
}

0 人点赞