计算24点代码,我的c语言代码如下
#include<stdio.h>
#include<math.h>
int main()
{
float Pa(float x,float y,float z,float w);
float Pb(float x,float y,float z,float w);
float A,B,C,D;
printf("请输入四个整数:");
scanf("%f%f%f%f",&A,&B,&C,&D);
Pa(A,B,C,D);Pb(A,B,C,D);
return 0;
}
float Pa(float x,float y,float z,float w)
{
int i,j,k,r,p,q,s;float a[4],b[4],c[4],d[4];
a[0]=x;a[1]=y;a[2]=z;a[3]=w;
char g[4]="+-*/";
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
for(k=0;k<4;k++)
{
for(r=0;r<4;r++)
{
if(i!=j&&i!=k&&i!=r&&j!=k&&j!=r&&k!=r)
{
b[0]=a[i]+a[j];b[1]=a[i]-a[j];
b[2]=a[i]*a[j];b[3]=a[i]/a[j];
for(p=0;p<4;p++)
{
c[0]=b[p]+a[k];c[1]=b[p]-a[k];
c[2]=b[p]*a[k];c[3]=b[p]/a[k];
for(q=0;q<4;q++)
{
d[0]=c[q]+a[r];d[1]=c[q]-a[r];
d[2]=c[q]*a[r];d[3]=c[q]/a[r];
for(s=0;s<4;s++)
{
if(fabs(d[s]-24)<0.001)
{printf("((%-1.0f%c%-1.0f)%c%-1.0f)%c%-1.0f=24\n",a[i],g[p],a[j],g[q],a[k],g[s],a[r]);}
}
}
}
}
}
}
}
}
}
float Pb(float x,float y,float z,float w)
{
int i,j,k,r,p,q,s;float a[4],b[6],c[6],d[6];
a[0]=x;a[1]=y;a[2]=z;a[3]=w;
char g[4]="+-*/";
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
for(k=0;k<4;k++)
{
for(r=0;r<4;r++)
{
if(i!=j&&i!=k&&i!=r&&j!=k&&j!=r&&k!=r)
{
b[0]=a[i]+a[j];b[1]=a[i]-a[j];
b[2]=a[i]*a[j];b[3]=a[i]/a[j];
c[0]=a[k]+a[r];c[1]=a[k]-a[r];
c[2]=a[k]*a[r];c[3]=a[k]/a[r];
for(p=0;p<4;p++)
{
for(q=0;q<4;q++)
{
d[0]=b[p]+c[q];d[1]=b[p]-c[q];
d[2]=b[p]*c[q];d[3]=b[p]/c[q];
for(s=0;s<4;s++)
{
if(fabs(d[s]-24)<0.001)
{printf("(%-1.0f%c%-1.0f)%c(%-1.0f%c%-1.0f)=24\n",a[i],g[p],a[j],g[s],a[k],g[q],a[r]);}
}
}
}
}
}
}
}
}
}