PTA的程序设计111

1、由电脑自动生成一个三个位且不重叠的十六进制数;
2、用户可以猜 8 次,若累计都猜错,则游戏失败,如果猜对,即三个位 上的数字都猜对,则设计合理的规则给予用户评分;

#include <stdio.h>
#include <string.h>
int main()
{
    int i=0,j,d,t=8;
    char c;
    char s[4] = {0};
    char a[4] = {0};
    srand(time(NULL));
    for(i=0;i<3;i++)
    {
        d = rand()%16;
        if(d<10)
            c = d+48;
        else
            c = d+55;
        for(j=0;j<i;j++)
            if(s[i] == c)
                break;
        if(j==i)
            s[i] = c;
        else
            i--;
    }
    while(t>0)
    {
        printf("第%d次猜:",9-t);
        scanf("%s",a);
        if(strcmp(a,s)==0)
            break;
        for(i=0;i<3;i++)
        {
            for(j=0;j<3;j++)
            {
                if(a[j] == s[i])
                {
                    if(i==j)
                        printf("数字%c位置正确数字正确\n",s[i]);
                    else
                        printf("数字%c位置不正确但数字正确\n",s[i]);
                }
            }
        }
        t--;
    }
    if(t==0)
        printf("很遗憾,8次没猜对");
    else
        printf("恭喜第%d次猜对了",9-t);
    return 0;
}