c语言四个零,输入任意四个整数(0到10),运算符只有加减乘除,还有括号.每个数只能且必须用一次。要求判断这些表达的结果中是否有24。如果有,输出计算表达式:如输入4,6,1...

已结贴√

问题点数:20 回复次数:5

ca56232b3bbedf9a539d07f37fffb99a.gif

3144d8b7615c79d9f638db40d5689d26.gif

a218af6549b45ee526caf607ebff1358.gif

0f8df0e29816ae721419de940fb833d1.gif

输入任意四个整数(0到10),运算符只有加减乘除,还有括号.每个数只能且必须用一次。要求判断这些表达的结果中是否有24。如果有,输出计算表达式:如输入4,6,1

输入任意四个整数(0到10),运算符只有加减乘除,还有括号.每个数只能且必须用一次。要求判断这些表达的结果中是否有24。如果有,输出计算表达式:如输入4,6,1,1 输出 4*6*1*1 =24 (允许有括号)。

#include

#define n 4

#define m 4

double sumation(double a1, double a2, int o);

int main()

{double sum2,sum3,sum4;

int i1,i2,i3,i4,j1,j2,j3,a[n];                                 //a[]为输入的整数

char op[m]={'+','-','*','/'};                            //op[]为运算符号

printf("4 integers (0-10):  ");

scanf("%d%d%d%d",&a[0],&a[1],&a[2],&a[3]);

printf("\n");

for(i1=0;i1

{for(i2=0;i2

if(i2!=i1)

{for(j1=0;j1

{sum2=sumation(a[i1],a[i2],j1);

for(i3=0;i3

if(i3!=i1&&i3!=i2)

{for(j2=0;j2

{sum3=sumation(sum2,a[i3],j2);

for(i4=0;i4

if(i4!=i1&&i4!=i2&&i4!=i3)

{for(j3=0;j3

{sum4=sumation(sum3,a[i4],j3);

if(sum4==24.0)

{if((op[j1]=='+'||op[j1]=='-')&&(op[j2]=='*'||op[j2]=='/'))

printf("(%d %c %d) %c %d %c %d = 24\n",a[i1],op[j1],a[i2],op[j2],a[i3],op[j3],a[i4]);

else

if((op[j2]=='+'||op[j2]=='-')&&(op[j3]=='*'||op[j3]=='/'))

printf("(%d %c %d %c %d) %c %d = 24\n",a[i1],op[j1],a[i2],op[j2],a[i3],op[j3],a[i4]);

else

printf("%d %c %d %c %d %c %d = 24\n",a[i1],op[j1],a[i2],op[j2],a[i3],op[j3],a[i4]);

}

}

}

}

}

}

}

}

return 0;

}

double sumation(double a1, double a2, int o)

{double sum;

if(o==0)

sum=a1+a2;

else

if(o==1)

sum=a1-a2;

else

if(o==2)

sum=a1*a2;

else

{if(a2==0.0)                                 //如果除以零,设置结果为一大数

sum=100000.0;

else

sum=a1/a2;

}

return sum;

}

这是网上看到的答案,然后试了一下答案很完整,但是重复性太厉害,请问大神们怎么改?

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值