注册 登录
编程论坛 C语言论坛

24点游戏 请问大佬们为什么我的算法达不到要求

KarlD 发布于 2019-08-23 23:17, 1970 次点击
#include<stdio.h>
void main()
{
    int n,i,t,d,k;
    char a[10000][7],b[3];
    scanf("%d",&n);
    for(i=0;i<=n-1;i++)
        for(t=0;t<7;t++)
            a[i][t]=getchar();
        //输入结束
        for(i=0;i<=n-1;i++)
        {
            for(t=1;t<=5;t+=2)
            {
                if(a[i][t]=='x')
                {
                    d=a[i][t-1]*a[i][t+1];
                    a[i][t+1]=d;
                    a[i][t]=-1;
                    a[i][t-1]=-1;
                }
                else if(a[i][t]=='/')
                {
                    d=a[i][t-1]/a[i][t+1];
                    a[i][t+1]=d;
                    a[i][t]=-1;
                    a[i][t-1]=-1;

                }// 已经mulity
            }
            for(t=1;t<=5;t+=2)
            {
                    if(a[i][t]=='+')
                    {
                        k=t+1;
                        while(a[i][k]==-1)
                        {
                            k++;
                        }
                        d=a[i][t-1]+a[i][k];
                        a[i][k]=d;
                    }
                    else if(a[i][t]=='-')
                    {
                        k=t+1;
                        while(a[i][k]==-1)
                        {
                            k++;
                        }
                        d=a[i][t-1]-a[i][k];
                        a[i][k]=d;
                    }
            }
            if(a[i][6]==24)
                printf("Yes\n");
            else
                printf("No\n");
        }

}
5 回复
#2
bcbbcclbbc2019-08-24 09:59
这个程序最后需要输入的是什么信息,预想的结果是什么?
#3
云不喜2019-08-25 09:46
你第一个判断if(a[i][t]=='x')应该是*而不是x
#4
bcbbcclbbc2019-08-26 15:57
前两个for循环是需要不断输入数据吗

#5
云不喜2019-08-26 17:38
回复 4楼 bcbbcclbbc
应该是不断输入数据,把一个个字符输入
但是24点游戏是这么玩的吗?好像不太对。

[此贴子已经被作者于2019-8-26 17:52编辑过]

#6
lxk17329422019-08-27 18:30
getchar()有坑,你的输入何时结束?是不是按下Enter键结束?如果是的话,那你应该想办法把Enter键舍掉,它会影响你的输入
1