UVa 489 Hangman Judge

来源:互联网 发布:unity3d 捏脸系统 编辑:程序博客网 时间:2024/05/16 16:02

example 4-2

本题是刘的算法竞赛第二版的例题,其中最精华的地方莫过于 win 和 lose 作为 if 的判断条件,并且使用了多个全局变量,来判断每一次的剩余和机会次数。

其中 while 的判断语句本人稍改了一下,以便输入 -1 后可以不需要继续输入两个字符串才能结束程序。代码如下:

#include <stdio.h>#include <string.h>#define maxn 100int left, chance;char s[maxn], s2[maxn];int win, lose;void guess(char ch){int bad = 1, i;for (i = 0; i < strlen(s); i++)if (s[i] == ch){left--;s[i] = ' ';bad = 0;}if (bad) --chance;if (!chance) lose = 1;if (!left) win = 1;}int main(void){int rnd, i;scanf("%d", &rnd);getchar();while (rnd != -1){scanf("%s%s", s, s2);getchar();printf("Round %d\n", rnd);win = lose = 0;left = strlen(s);chance = 7;for (i = 0; i < strlen(s2); i++){guess(s2[i]);if (win || lose) break;}if (win) printf("You win.\n");else if (lose) printf("You lose.\n");else printf("You chickened out.\n");scanf("%d", &rnd);getchar();}return 0;}


0 0
原创粉丝点击