C语言实现24点,但一直没法调试成功,烦请高手指教
#include "stdio.h"
#include "math.h"
void main()
{
int a,b,c,d,h,i,j,s;
char m[4]={+,-,*,/};
printf("please input four numbers:");
scanf("%d,%d,%d,%d",&a,&b,&c,&d);
if(0<a&&0<b&&0<c&&0<d&&a<14&&b<14&&c<14&&d<14)
{
{for(h=0,h<4;h++)
{for(i=0,i<4;i++)
{for(j=0,j<4;j++)
switch()
{
case 1:s=am[h]bm[i]cm[j]d;
if(s==24)
printf("s=%d%c%d%c%d\n",a,m[h],b,m[i],c,m[j],d);
case 2: s=(am[h]b)m[i]cm[j]d;
if(s==24)
printf("s=(%d%c%d)%c%d%c%d\n",a,m[h,]bm,[i],c,m[j],d);
case 3: s=(am[h]bm[i]c)m[j]d;
if(s==24)
printf("s=(%d%c%d%c%d)%c%d\n",a,m[h],b,m[i],c,m[j],d);
case 4:s=((am[h]b)m[i]c)m[j]d;
if(s==24)
printf("s=((%d%c%d)%c%d)%c%d",a,m[h],b,m[i],c,m[j],d);
case 5:s=(am[h](bm[i]c))m[j]d;
if(s==24)
printf("s=(%d%c(%d%c%d))%c%d\n",a,m[h],b,m[i],c,m[j],d);
case 6: s=am[h](bm[i]c)m[j]d;
if(s==24)
printf("s=%d%c(%d%c%d)%c%d\n",a,m[h],b,m[i],c,m[j],d);
case 7: s=am[h](bm[i]cm[j]d);
if(s==24)
printf("s=%d%c(%d%c%d%c%d\n)",a,m[h],b,m[i],c,m[j],d);
case 8:s=am[h]((bm[i])cm[j]d);
if(s==24)
printf("s=%d%c((%d%c%d)%c%d\n)",a,m[h],b,m[i],c,m[j],d);
case 9: s=am[h](bm[i](cm[j]d));
if(s==24)
printf("s=%d%c(%d%c(%d%c%d\n))",a,m[h],b,m[i],c,m[j],d);
case 10: s=am[h]bm[i](cm[j]d);
if(s==24)
printf("s=%d%c%d%c(%d%c%d\n)",a,m[h],b,m[i],c,m[j],d);
case 11:s=(am[h]b)m[i](cm[j]d);
if(s==24)
printf("s=(%d%c%d)%c(%d%c%d\n)",a,m[h],b,m[i],c,m[j],d);
}
}
}
}
}
else
printf("the input number is false");
}
[解决办法]
case之间,需要break
[解决办法]
s=am[h]bm[i]cm[j]d;
这不是一个运算的句子,用栈来实现表达式计算吧
[解决办法]
计算24,首先要罗列出所有的表达式,然后再计算
[解决办法]
{for(h=0,h<4;h++)
{for(i=0,i<4;i++)
{for(j=0,j<4;j++)
把逗号给成分号~~·
[解决办法]
神马?
case 1:s=am[h]bm[i]cm[j]d;