zoukankan      html  css  js  c++  java
  • UVa 489,紫书P79,刽子手游戏

    题目链接:https://uva.onlinejudge.org/external/4/489.pdf

    这个题很像之前的一个拓扑排序的题目,思路类似咯。

    程序模块化:

    每次判断一个字母,lose,win确定就直接退出。

    小技巧:

    你可以用数组guess[]记录每个字母是否访问过。要是已经访问过,counts++,算是一种错误。

    这里汝佳的小技巧是,每次把相同的字符赋值为‘ ’,记录一下str1的长度,查完str1就win。否则就是You chickened out.

    #include <stdio.h>
    #include <string.h>
    
    int win ,lose;
    int left;
    int counts = 0;
    char str1[110],str2[110];
    
    void guess(char ch)
    {
        bool flag = false;
        for(int i=0;i<strlen(str1);i++)
        {
            if(ch==str1[i])
            {
                str1[i] = ' ';
                flag = true;
                left--;
            }
        }
        if(!flag) counts++;
        if(counts>6) lose = 1;
        if(left==0) win = 1;
    }
    
    int main()
    {
        freopen("input.txt","r",stdin);
        int cases;
        while(scanf("%d",&cases))
        {
            counts = 0;
            if(cases==-1) break;
            printf("Round %d
    ",cases);
            scanf("%s%s",str1,str2);
            win = lose = 0;
    
            left = strlen(str1);
            for(int i=0;i<strlen(str2);i++)
            {
                guess(str2[i]);
                if(win||lose)
                    break;
            }
    
            if(win) printf("You win.
    ");
            else if(lose) printf("You lose.
    ");
            else printf("You chickened out.
    ");
        }
        return 0;
    }
  • 相关阅读:
    mysql版本问题
    敏感词过滤
    身份证校验-----15位,18位后端
    身份证号校验---------前端
    layui时间显示
    第一次入坑docker
    mysql索引解析
    mysql数据库索引调优
    设计模式-代理模式
    c#中abstract与virtua、overridel的用法
  • 原文地址:https://www.cnblogs.com/TreeDream/p/5843428.html
Copyright © 2011-2022 走看看