| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 263 人关注过本帖
标题:c语言编24的计算解
取消只看楼主 加入收藏
毛晓妖
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2012-11-30
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:1 
c语言编24的计算解
#include<stdio.h>
void main()
{
    int i,j,k,m,n,a[4],end[64];
    char c,d,e;
    printf("请输入扑克牌数值:");
    for(i=0;i<4;i++)scanf("%d",&a[i]);
    for(i=0;i<4;i++)
        for(j=0;j<4;j++)
            for(k=0;k<4;k++)
                for(m=0;m<4;m++){
                    if(i==j||i==k||i==m||j==k||j==m||k==m)continue;
                    end[0]=a[i]*a[j]*a[k]*a[m];
                    end[1]=a[i]*a[j]*a[k]+a[m];
                    end[2]=a[i]*a[j]*a[k]-a[m];
                    end[3]=a[i]*a[j]*a[k]/a[m];
                    end[4]=a[i]*a[j]+a[k]*a[m];
                    end[5]=a[i]*a[j]+a[k]+a[m];
                    end[6]=a[i]*a[j]+a[k]-a[m];
                    end[7]=a[i]*a[j]+a[k]/a[m];
                    end[8]=a[i]*a[j]-a[k]*a[m];
                    end[9]=a[i]*a[j]-a[k]+a[m];
                    end[10]=a[i]*a[j]-a[k]-a[m];
                    end[11]=a[i]*a[j]-a[k]/a[m];
                    end[12]=a[i]*a[j]/a[k]*a[m];
                    end[13]=a[i]*a[j]/a[k]+a[m];
                    end[14]=a[i]*a[j]/a[k]-a[m];
                    end[15]=a[i]*a[j]/a[k]/a[m];
                    end[16]=a[i]+a[j]*a[k]*a[m];
                    end[17]=a[i]+a[j]*a[k]+a[m];
                    end[18]=a[i]+a[j]*a[k]-a[m];
                    end[19]=a[i]+a[j]*a[k]/a[m];
                    end[20]=a[i]+a[j]+a[k]*a[m];
                    end[21]=a[i]+a[j]+a[k]+a[m];
                    end[22]=a[i]+a[j]+a[k]-a[m];
                    end[23]=a[i]+a[j]+a[k]/a[m];
                    end[24]=a[i]+a[j]-a[k]*a[m];
                    end[25]=a[i]+a[j]-a[k]+a[m];
                    end[26]=a[i]+a[j]-a[k]-a[m];
                    end[27]=a[i]+a[j]-a[k]/a[m];
                    end[28]=a[i]+a[j]/a[k]*a[m];
                    end[29]=a[i]+a[j]/a[k]+a[m];
                    end[30]=a[i]+a[j]/a[k]-a[m];
                    end[31]=a[i]+a[j]/a[k]/a[m];
                    end[32]=a[i]-a[j]*a[k]*a[m];
                    end[33]=a[i]-a[j]*a[k]+a[m];
                    end[34]=a[i]-a[j]*a[k]-a[m];
                    end[35]=a[i]-a[j]*a[k]/a[m];
                    end[36]=a[i]-a[j]+a[k]*a[m];
                    end[37]=a[i]-a[j]+a[k]+a[m];
                    end[38]=a[i]-a[j]+a[k]-a[m];
                    end[39]=a[i]-a[j]+a[k]/a[m];
                    end[40]=a[i]-a[j]-a[k]*a[m];
                    end[41]=a[i]-a[j]-a[k]+a[m];
                    end[42]=a[i]-a[j]-a[k]-a[m];
                    end[43]=a[i]-a[j]-a[k]/a[m];
                    end[44]=a[i]-a[j]/a[k]*a[m];
                    end[45]=a[i]-a[j]/a[k]+a[m];
                    end[46]=a[i]-a[j]/a[k]-a[m];
                    end[47]=a[i]-a[j]/a[k]/a[m];
                    end[48]=a[i]/a[j]*a[k]*a[m];
                    end[49]=a[i]/a[j]*a[k]+a[m];
                    end[50]=a[i]/a[j]*a[k]-a[m];
                    end[51]=a[i]/a[j]*a[k]/a[m];
                    end[52]=a[i]/a[j]+a[k]*a[m];
                    end[53]=a[i]/a[j]+a[k]+a[m];
                    end[54]=a[i]/a[j]+a[k]-a[m];
                    end[55]=a[i]/a[j]+a[k]/a[m];
                    end[56]=a[i]/a[j]-a[k]*a[m];
                    end[57]=a[i]/a[j]-a[k]+a[m];
                    end[58]=a[i]/a[j]-a[k]-a[m];
                    end[59]=a[i]/a[j]-a[k]/a[m];
                    end[60]=a[i]/a[j]/a[k]*a[m];
                    end[61]=a[i]/a[j]/a[k]+a[m];
                    end[62]=a[i]/a[j]/a[k]-a[m];
                    end[63]=a[i]/a[j]/a[k]/a[m];
                    for(n=0;n<64;n++){
                        if(n<16)c='*';
                            else if(n<32)c='+';
                            else if(n<48)c='-';
                            else c='/';
                        if(n%4==0)e='*';
                        else if(n%4==1)e='+';
                        else if(n%4==2)e='-';
                        else e='/';
                        if(n<4||(n>15&&n<20)||(n>31&&n<36)||(n>47&&n<52))d='*';
                        else if(n<8||(n>19&&n<24)||(n>35&&n<40)||(n>51&&n<56))d='+';
                        else if(n<12||(n>23&&n<28)||(n>39&&n<44)||(n>55&&n<60))d='-';
                        else d='/';
                        if((end[n]==24)&&!(d==e&&d==c&&d=='+'))
                            printf("%d%c%d%c%d%c%d=24\n",a[i],c,a[j],d,a[k],e,a[m]);
                    }
                }
                if(a[0]+a[1]+a[2]+a[3]==24)printf("%d+%d+%d+%d=24\n",a[0],a[1],a[2],a[3]);
}
                    


有两个问题求教
1:如何实现+-*/的循环表示,能简单一些?
2:用int的/号不出现小数使结果不真确如何解决?
搜索更多相关主题的帖子: continue include 
2012-11-30 22:47
毛晓妖
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2012-11-30
收藏
得分:0 
回复 2楼 pauljames
这个我想过 只是转变成实数型的时候 条件end[n]==24根本难以成立 而且太麻烦了
2012-12-01 11:45
快速回复:c语言编24的计算解
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018722 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved