| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 787 人关注过本帖
标题:求帮助!关于24点的问题 我编程不能找出所有的方法 但是自己不知道怎么改 请 ...
取消只看楼主 加入收藏
贪狼oo
Rank: 2
等 级:论坛游民
帖 子:12
专家分:20
注 册:2011-7-21
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:4 
求帮助!关于24点的问题 我编程不能找出所有的方法 但是自己不知道怎么改 请求帮助,谢谢
输入任意四个整数(0到10),运算符只有加减乘除,还有括号.每个数只能且必须用一次。要求判断这些表达的结果中是否有24。如果有,输出计算表达式:如输入4,6,1,1 输出 4*6*1*1 =24 (允许有括号)。
#include<stdio.h>
double Sum(double a,double b,int i)
{
    double sum;
    if(i==0)
        sum=a+b;
    else if(i==1)
        sum=a-b;
    else if(i==2)
        sum=a*b;
    else if(i==3)
    {
        if(b==0)
            return -1000000000000;
        else
            sum=a/b;
    }
    return sum;
}
int main()
{
    int i1,i2,i3,i4,j1,j2,j3,s[4];
    char a[4]={'+','-','*','/'};
    double s1,s2,s3;
    printf("请输入0-10之间的数:");
    scanf("%d%d%d%d",&s[0],&s[1],&s[2],&s[3]);
    printf("\n");
    for(i1=0;i1<4;i1++)
    {
        for(i2=0;i2<4;i2++)
        {

            if(i2!=i1)
            {
                for(j1=0;j1<4;j1++)
                {
                    s1=Sum(s[i1],s[i2],j1);
                    for(i3=0;i3<4;i3++)
                    {
                        if(i3!=i2&&i3!=i1)
                        {
                            for(j2=0;j2<4;j2++)
                            {
                                s2=Sum(s1,s[i3],j2);
                                for(i4=0;i4<4;i4++)
                                {
                                    if(i4!=i1&&i4!=i2&&i4!=i3)
                                    {
                                        for(j3=0;j3<4;j3++)
                                        {
                                            s3=Sum(s2,s[i4],j3);
                                            if(s3==24.0)
                                            {
                                                if((a[j1]=='+'||a[j1]=='-')&&(a[j2]=='*'||a[j2]=='/'))
                                                {printf("1q");
                                                    printf("(%d%c%d)%c%d%c%d=24\n",s[i1],a[j1],s[i2],a[j2],s[i3],a[j3],s[i4]);
                                                }
                                                else if((a[j2]=='+'||a[j2]=='-')&&(a[j3]=='*'||a[j3]=='/'))
                                                {printf("2q");
                                                    printf("(%d%c%d%c%d)%c%d=24\n",s[i1],a[j1],s[i2],a[j2],s[i3],a[j3],s[i4]);
                                                }
                                                else
                                                {printf("3q");
                                             printf("%d%c%d%c%d%c%d=24\n",s[i1],a[j1],s[i2],a[j2],s[i3],a[j3],s[i4]);
                                                }
                                       
                                            }
                                            if
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    return 0;

}
                                











搜索更多相关主题的帖子: 编程 include double return 
2011-12-06 22:50
贪狼oo
Rank: 2
等 级:论坛游民
帖 子:12
专家分:20
注 册:2011-7-21
收藏
得分:0 
回复 2楼 bingfengX
不会啊
2011-12-06 22:55
贪狼oo
Rank: 2
等 级:论坛游民
帖 子:12
专家分:20
注 册:2011-7-21
收藏
得分:0 
回复 4楼 bingfengX
例如6*8/(1+1)=24这样的式子时 括号在后面时 用语句输出时 总是晕晕的  给些提示就好
2011-12-06 23:05
贪狼oo
Rank: 2
等 级:论坛游民
帖 子:12
专家分:20
注 册:2011-7-21
收藏
得分:0 
回复 7楼 laoyang103
如果我接下来用if语句去判断1/24 ,能不能得出全部的答案?
2011-12-07 16:34
贪狼oo
Rank: 2
等 级:论坛游民
帖 子:12
专家分:20
注 册:2011-7-21
收藏
得分:0 
回复 9楼 laoyang103
感谢
2011-12-08 13:04
快速回复:求帮助!关于24点的问题 我编程不能找出所有的方法 但是自己不知道怎么 ...
数据加载中...
 
   



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

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