Uva-489 Hangman Judge

来源:互联网 发布:宿迁网络电视台 编辑:程序博客网 时间:2024/06/07 18:28

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

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;  }  



0 0