24点游戏 c语言的实现

今天的一次写,计划以后每天都能至少写100行的代码,如果各位多多支持一下,应该可以坚持下去吧
好的
主要是用c语言实现24点游戏
代码直接贴了
****************
  #include"stdlib.h"
#include"time.h"
#include"stdio.h"
void begin(int a[])
{     int i;
      srand(time(NULL));
       for(i=0;i<4;i++)
       {
    a[i]=1+rand() % 12;
     printf("a%d=%d/n",i+1,a[i]);
       
        }     
}
*****************
将*****之间代码粘贴,另存为begin.h
*****************
    #include"begin.h"
    #include"stdio.h"
    #include"assert.h"
    void input(int p[])
    {
         int i;
        for(i=0;i<7;i++)
        {
        if(i%2)
        p[i]=getchar();
        else
        scanf("%d",&p[i]);
        }

    }

    int judge(int p[],int a[])
    {    int i,j;   
        for(i=0;i<7;i+=2)
        if((p[i]-1)*(p[i]-13)>0)   
        return 0;
//        for(i=0;i<4;i++)
        for(j=0;j<7;j+=2)
        for(i=0;i<4;i++)
        if(a[i]==p[j])
        a[i]=0;
        for(i=0;i<4;i++)
        if(a[i])
        return 0;
        return 1;
    }

    void digui(int p[],int num)
    {   
        int i,f=1;
        //以下找到此步计算的点
        for(i=1;i<=2*num-1;i+=2)
        if(p[i]=='*'||p[i]=='/')
        {
        f=i;
        break;
        }
        switch(p[f])
        {
        case '+':p[f-1]=p[f-1]+p[f+1];break;
        case '-':p[f-1]=p[f-1]-p[f+1];break;
        case '*':p[f-1]=p[f-1]*p[f+1];break;
        case '/':p[f-1]=p[f-1]/p[f+1];break;
        default:printf("fuhaocuowu/n");
        }
        for(i=f;i<=2*num-2;i++)
        p[i]=    p[i+2];
        if(num!=1)
        digui(p,num-1);
    }

    void main()
    {
        char c;
        int num=3;
         int a[4]={0};
        int p[7]={0};
    again:begin(a);//分配几个数   
        input(p);//输入
        assert(judge(p,a)==1);
//    if(judge(p,a)==1)
    //    printf("go on");
        digui(p,num);//计算了
        if(p[0]==24)
        printf("CONGRATULATIONS!IT'S RIGHT!");
        else
        printf("GO HOME! YOU SILLY!/n");
    error: printf("TRY AGAIN ?[Y]ES OR [N]O?");       
    enter:scanf("%c",&c);
        if(c=='Y'||c=='y')
        goto again;
        else
         if(c=='n'||c=='N')
        printf("exiting...../n");
        else
        if(c=='/n')
        goto enter;
        else goto error;
        }

******************************************************
将以上保存为main.c
只要将上述文件放在一个目录下就可以运行了
不过可惜的是不支持,括号那位高手帮改一下就好了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值