| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 511 人关注过本帖
标题:求帮忙详细注解一下这个24点的C语言程序,真的很感谢!
只看楼主 加入收藏
狠角色
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-5-1
结帖率:0
收藏
已结贴  问题点数:20 回复次数:6 
求帮忙详细注解一下这个24点的C语言程序,真的很感谢!
#include<stdio.h>
double fun(double a1,double a2,int b)
{switch(b)
{case 0:return (a1+a2);
case 1:return (a1-a2);
case 2:return (a1*a2);
case 3:return (a1/a2);
}
}
void main()
{int i,j,k,l,n,m,r,save[4];
double num[4]={1,1,1,1},tem1,tem2,tem3,abc=1111;
char sign[5]="+-*/";
printf("请输入任意4个不同的整数,并以空格隔开:");
for(i=0;i<4;i++)
{scanf("%lf",num+i); save[i]=num[i];}
for(i=0;i<4;i++)
for(j=0;j<4;j++)
if(j!=i)
{for(k=0;k<4;k++)
if(k!=i&&k!=j)
{for(l=0;l<4;l++)
if(l!=i&&l!=j&&l!=k)
{for(n=0;n<4;n++)
for(m=0;m<4;m++)
for(r=0;r<4;r++)
{tem1=fun(num[i],num[j],n);
tem2=fun(tem1,num[k],m);
tem3=fun(tem2,num[l],r);
if(tem3==24.0)
printf("{(%d%c%d)%c%d}%c%d=24\n",save[i],sign[n],save[j],sign[m],save[k],sign[r],save[l]);
else if(tem3==-24.0)
printf("{%d%c(%d%c%d)}%c%d=24\n",save[k],sign[m],save[i],sign[n],save[j],sign[r],save[l]);
else if(tem3==1.0/24.0)
printf("%d%c{(%d%c%d)%c%d}=24\n",save[l],sign[r],save[i],sign[n],save[j],sign[m],save[k]);
else if(tem3==-1.0/24.0)
printf("%d%c{%d%c(%d%c%d)}=24\n",save[l],sign[r],save[k],sign[n],save[i],sign[m],save[j]);
else
{tem1=fun(num[i],num[j],n);
tem2=fun(num[k],num[l],r);
tem3=fun(tem1,tem2,m);
if(tem3==24.0) printf("(%d%c%d)%c(%d%c%d)=24\n",save[i],sign[n],save[j],sign[m],save[k],sign[r],save[l]);
}
}
}
}
}
}
搜索更多相关主题的帖子: include double return 
2013-05-01 22:07
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:4 
这个代码格式。。。好费力阿

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2013-05-02 06:45
helloUJS
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:168
专家分:731
注 册:2013-3-27
收藏
得分:4 
代码读的很费力,稍微整理了一下
#include<stdio.h>
double fun(double a1,double a2,int b) /*a1与a2进行b运算*/
{switch(b)
{case 0:return (a1+a2);
case 1:return (a1-a2);
case 2:return (a1*a2);
case 3:return (a1/a2);
}
}
 main()
{
 int i,j,k,l,n,m,r,save[4];
 double num[4]={1,1,1,1},tem1,tem2,tem3,abc=1111;
 char sign[5]="+-*/";
 printf("请输入任意4个不同的整数,并以空格隔开:");
 for(i=0;i<4;i++)
  {
    scanf("%lf",num+i); save[i]=num[i];
  }
 for(i=0;i<4;i++)
    for(j=0;j<4;j++)
       if(j!=i)
         {
          for(k=0;k<4;k++)
             if(k!=i&&k!=j)
                {
                  for(l=0;l<4;l++)
                    if(l!=i&&l!=j&&l!=k)
                      {
                         for(n=0;n<4;n++) /*n表示num[i]与num[j]进行四则运算的类型0:+1:-2:*3:/*/
                            for(m=0;m<4;m++) /*m表示tem1与num[k]进行四则运算的类型*/
                              for(r=0;r<4;r++)/*r表示tem1与num[l]进行四则运算的类型*/
                                {
                                  tem1=fun(num[i],num[j],n); /*term1=num[i]与num[j]进行n表示的运算*/
                                  tem2=fun(tem1,num[k],m); /*term2=term1与num[k]进行m表示的运算*/
                                  tem3=fun(tem2,num[l],r); /*term3=term2与num[l]进行r表示的运算*/
                                  if(tem3==24.0)/*如果((num[i](n运算)num[j])(m运算)num[k])(r运算)num[l]=24*/
                                       printf("{(%d%c%d)%c%d}%c%d=24\n",save[i],sign[n],save[j],sign[m],save[k],sign[r],save[l]);
                                  }
                       }
                 }
        }
}
a (n运算)b的意思是:如果n=0,计算a+b;如果n=1,计算a-b;如果n=2,计算a*b;如果n=3,计算a/b;
另外下面这些代码似乎不需要:
else if(tem3==-24.0)
printf("{%d%c(%d%c%d)}%c%d=24\n",save[k],sign[m],save[i],sign[n],save[j],sign[r],save[l]);
else if(tem3==1.0/24.0)
printf("%d%c{(%d%c%d)%c%d}=24\n",save[l],sign[r],save[i],sign[n],save[j],sign[m],save[k]);
else if(tem3==-1.0/24.0)
printf("%d%c{%d%c(%d%c%d)}=24\n",save[l],sign[r],save[k],sign[n],save[i],sign[m],save[j]);
else
{tem1=fun(num[i],num[j],n);
tem2=fun(num[k],num[l],r);
tem3=fun(tem1,tem2,m);
if(tem3==24.0) printf("(%d%c%d)%c(%d%c%d)=24\n",save[i],sign[n],save[j],sign[m],save[k],sign[r],save[l]);
2013-05-02 08:07
狠角色
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-5-1
收藏
得分:0 
回复 3楼 helloUJS
超级感谢啊,好人一生平安
2013-05-02 12:25
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:4 
回复 楼主 狠角色
选择一个好的编译器,自己写代码的时候要多注意,尽量让自己代码的版面,写的美观,大家更愿意帮助你,加油

Maybe
2013-05-02 12:36
tremere
Rank: 6Rank: 6
来 自:火星
等 级:侠之大者
帖 子:223
专家分:432
注 册:2013-3-11
收藏
得分:4 
这代码。。。。

极品菜鸟,来学习啦,啦啦啦啦啦啦啦。。。
2013-05-02 13:11
Han_FlyB
Rank: 6Rank: 6
等 级:侠之大者
帖 子:143
专家分:424
注 册:2013-3-25
收藏
得分:4 
没调整之前我表示都不知道哪到哪
2013-05-02 14:14
快速回复:求帮忙详细注解一下这个24点的C语言程序,真的很感谢!
数据加载中...
 
   



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

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