您的位置:首页 > 编程语言 > C语言/C++

Uva-489 Hangman Judge

2017-04-17 22:59 381 查看


这个题纯靠思维逻辑,今天状态不好,改了许久仍然错,直接找了大神的代码看懂才算了事。

ac代码:

#include <bits/stdc++.h>
using namespace std;
const int maxn = 1000;
char str1[maxn], str2[maxn], c;
int size1, size2, yes, no, k;
bool win, lose;

int isFind(char str[], int size, char c)
{
for (int i = 0; i < size; i++)
{
if (str[i] == c)
return 1;
}
return 0;
}

int main()
{
while (scanf("%d",&k) == 1)
{
if (k < 0)break;
size1 = 0; size2 = 0; yes = 0; no = 0;
win = 0; lose = 0;
getchar();
memset(str1, 0, sizeof(str1));
memset(str2, 0, sizeof(str2));
while ((c = getchar()) != '\n')
{
if (!isFind(str1,size1,c))
{
str1[size1++] = c;
}
}
while ((c = getchar()) != '\n')
{
if (isFind(str1,size1,c) && !isFind(str2,size2,c)) yes++;
else if (!isFind(str1,size1,c) && !isFind(str2,size2,c))no++;

if ((yes < size1) && (no == 7))
{
lose = 1;
}
else if ((yes == size1) && (no < 7))
{
win = 1;
}
str2[size2++] = c;
}

if (win)
{
printf("Round %d\nYou win.\n",k);
}
if (lose)
{
printf("Round %d\nYou lose.\n",k);
}
if (yes < size1 && no < 7)
{
printf("Round %d\nYou chickened out.\n",k);
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ uva