⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 24.c

📁 24点游戏,DOS下运行的,增加了输入验证的强度,可以在程序中对答案进行查询
💻 C
📖 第 1 页 / 共 2 页
字号:
                    if(past==-1)
                    {
                        Answer[AnsCount]=malloc(25);
                        strcpy(Answer[AnsCount],Out);
                        AnsCount++;
                    }

                    flag=1;
                }

                strcpy(form,ttform);
            }
        strcpy(form,tform);
        }
    }
}

for(i=0;i<3;i++)
{   for(sgn3=0;sgn3<3;sgn3++)
    {
        for(j=0;j<17;j++)
        {
            form[j]=' ';
        }

        switch(sgn3)
        {
            case 0:
                form[7]=ntoc(*(G0[i]+2));
                form[8]='+';
                form[9]=ntoc(*(G0[i]+3));
                res1=*(G0[i]+2)+*(G0[i]+3);
                break;
            case 1:
                form[7]=ntoc(*(G0[i]+2));
                form[8]='-';
                form[9]=ntoc(*(G0[i]+3));
                res1=*(G0[i]+2)-*(G0[i]+3);
                break;
            case 2:
                form[7]=ntoc(*(G0[i]+3));
                form[8]='-';
                form[9]=ntoc(*(G0[i]+2));
                res1=*(G0[i]+3)-*(G0[i]+2);
                break;
        }
        strcpy(tform,form);

        for(sgn2=0;sgn2<3;sgn2++)
        {
            strcpy(form,tform);
            switch(sgn2)
            {
                case 0:
                    form[1]=ntoc(*(G0[i]));
                    form[2]='+';
                    form[3]=ntoc(*(G0[i]+1));
                    res2=*(G0[i])+*(G0[i]+1);
                    break;
                case 1:
                    form[1]=ntoc(*(G0[i]));
                    form[2]='-';
                    form[3]=ntoc(*(G0[i]+1));
                    res2=*(G0[i])-*(G0[i]+1);
                    break;
                case 2:
                    form[1]=ntoc(*(G0[i]+1));
                    form[2]='-';
                    form[3]=ntoc(*(G0[i]));
                    res2=*(G0[i]+1)-*(G0[i]);
                    break;
            }
            strcpy(ttform,form);

            for(sgn1=0;sgn1<3;sgn1++)
            {
                strcpy(form,ttform);
                switch(sgn1)
                {
                    case 0:
                        form[0]=form[6]='(';
                        form[4]=form[10]=')';
                        form[5]='*';
                        res=res2*res1;
                        break;
                    case 1:
                        if(res1==0)break;
                        form[0]=form[6]='(';
                        form[4]=form[10]=')';
                        form[5]='/';
                        res=res2/res1;
                        break;
                    case 2:
                        if(res2==0)break;
                        form[13]=form[1];
                        form[1]=' ';
                        form[14]=form[2];
                        form[2]=' ';
                        form[15]=form[3];
                        form[3]=' ';
                        form[6]=form[12]='(';
                        form[10]=form[16]=')';
                        form[11]='/';
                        res=res1/res2;
                        break;
                }
                if(fabs(res-24)<1e-5)
                {
                    Output(form,Out);

                    for(past=AnsCount-1;past>=0;past--)
                    {
                        if(strcmp(Answer[past],Out)==0)
                        break;
                    }

                    if(past==-1)
                    {
                        Answer[AnsCount]=malloc(25);
                        strcpy(Answer[AnsCount],Out);
                        AnsCount++;
                    }

                    flag=1;
                }
            }
        }
    }
}

for(i=0;i<3;i++)
{
    for(sgn3=0;sgn3<3;sgn3++)
    {
        for(j=0;j<17;j++)
        {
            form[j]=' ';
        }

        switch(sgn3)
        {
            case 0:
                form[7]=ntoc(*(G0[i]+2));
                form[8]='*';
                form[9]=ntoc(*(G0[i]+3));
                res1=(*(G0[i]+2))*(*(G0[i]+3));
                break;
            case 1:
                if(*(G0[i]+3)==0) break;
                form[7]=ntoc(*(G0[i]+2));
                form[8]='/';
                form[9]=ntoc(*(G0[i]+3));
                res1=(float)(*(G0[i]+2))/(*(G0[i]+3));
                break;
            case 2:
                if(*(G0[i]+2)==0) break;
                form[7]=ntoc(*(G0[i]+3));
                form[8]='/';
                form[9]=ntoc(*(G0[i]+2));
                res1=(float)(*(G0[i]+3))/(*(G0[i]+2));
                break;
        }
        strcpy(tform,form);

        for(sgn2=0;sgn2<3;sgn2++)
        {
            strcpy(form,tform);
            switch(sgn2)
            {
                case 0:
                    form[1]=ntoc(*(G0[i]));
                    form[2]='*';
                    form[3]=ntoc(*(G0[i]+1));
                    res2=(*(G0[i]))*(*(G0[i]+1));
                    break;
                case 1:
                    if(*(G0[i]+1)==0) break;
                    form[1]=ntoc(*(G0[i]));
                    form[2]='/';
                    form[3]=ntoc(*(G0[i]+1));
                    res2=(float)(*(G0[i]))/(*(G0[i]+1));
                    break;
                case 2:
                    if(*(G0[i])==0) break;
                    form[1]=ntoc(*(G0[i]+1));
                    form[2]='/';
                    form[3]=ntoc(*(G0[i]));
                    res2=(float)(*(G0[i]+1))/(*(G0[i]));
                    break;
            }
            strcpy(ttform,form);

            for(sgn1=0;sgn1<3;sgn1++)
            {
                strcpy(form,ttform);
                switch(sgn1)
                {
                    case 0:
                        form[5]='+';
                        res=res2+res1;
                        break;
                    case 1:
                        form[5]='-';
                        res=res2-res1;
                        break;
                    case 2:
                        form[13]=form[1];
                        form[1]=' ';
                        form[14]=form[2];
                        form[2]=' ';
                        form[15]=form[3];
                        form[3]=' ';
                        form[11]='-';
                        res=res1-res2;
                        break;
                }
                if(fabs(res-24)<1e-5)
                {

                    Output(form,Out);

                    for(past=AnsCount-1;past>=0;past--)
                    {
                        if(strcmp(Answer[past],Out)==0)
                        break;
                    }

                    if(past==-1)
                    {
                        Answer[AnsCount]=malloc(25);
                        strcpy(Answer[AnsCount],Out);
                        AnsCount++;
                    }

                    flag=1;
                }
            }
        }
    }
}

    if(flag==0)
    {
        Answer[0]="No Answer!";
        AnsCount++;
    }
    Answer[AnsCount]=NULL;
}

char ntoc(int n)
{
   return n+48;
}

void output(char form[])
{
    int i=0;
    while(form[i]!='\0')
    {
        if(form[i]!=' ')
        {
            if(form[i]==58)
                printf("10",form[i]);
            else if(form[i]==59)
                printf("11",form[i]);
            else if(form[i]==60)
                printf("12",form[i]);
            else if(form[i]==61)
                printf("13",form[i]);
            else
                printf("%c",form[i]);
        }
        i++;
    }
}

void Output(char Form[],char Out[])
{
    int i=0,j=0;

    while(Form[i]!='\0')
    {
        if(Form[i]!=' ')
        {
            if(Form[i]==58)
            {
                Out[j++]='1';
                Out[j++]='0';
            }
            else if(Form[i]==59)
            {
                Out[j++]='1';
                Out[j++]='1';
            }
            else if(Form[i]==60)
            {
                Out[j++]='1';
                Out[j++]='2';
            }
            else if(Form[i]==61)
            {
                Out[j++]='1';
                Out[j++]='3';
            }
            else Out[j++]=Form[i];

        }

        i++;
    }
    Out[j]='=';
    Out[j+1]='2';
    Out[j+2]='4';
    Out[j+3]='\0';
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -