谁是冠军题目
我的思路是把输入的名字 输掉的都把对应的 flag 改成 1 还有重的名字也改为1 方便最后的得出结论
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<iostream>
#include<math.h>
using namespace std;
char name[1000][20];
int flag[1000] = { 0 };
int main()
{
int num;
while (cin >> num)
{
memset(name, 0, sizeof(char)* 1000 * 20);
memset(flag, 0, sizeof(int)*1000);
if (num == 0)return 0;
for (int i = 0; i < num * 2; i += 2)
{
cin >> name[i] >> name[i + 1];
for (int j = 0; j < i; j++)
{
if (!strcmp(name[j], name[i]))flag[i] = 1;
}
if (flag[i + 1] == 0)flag[i + 1] = 1;
for (int j = 0; j < i; j++)
{
if (!strcmp(name[j], name[i+1]))flag[j] = flag[i+1];
}
}
int n = 0;
for (int i = 0; i < num * 2; i++)
{
if (flag[i] == 0)n++;
}
//for (int i = 0; i<num * 2; i++)cout << flag[i] << " ";
if (n == 0 || n>1)cout << "No" << endl;
else cout << "Yes" << endl;
}
return 0;
}
一定要记得两个重置函数 我在这卡了好久。。。。。切记!!!!!!!!!!!