24点C语言源代码

#包含“math.h”

int total=0,count=0,page

炭化温度;

main(){

float sum(float,float,char);

void test24(float [],char[]);

int i,j,k,l,q,r,s,t,n = 0;

浮动a[4];

char f[4]={'+','-',' * ','/' };

浮点x[4];

char y[3];

int go = 1;

while(go==1){

printf("请输入每次休息打印多少个结果?\ n ");

scanf("%d ",& amp页面);

printf("请输入4 num到24:\ n ");

scanf("%f%f%f%f ",& ampa[0],& ampa[1],& ampa[2],& ampa[3]);

scanf("%c ",& amptemp);

printf(" \ n * * * * * * resu alt:* * * * \ n ");

/*获取4个数字*/

总计= 0;

for(I = 0;我& lt4;i++){

for(j = 0;j & lt4;j++){

if(i==j)继续;

for(k = 0;k & lt4;k++){

if(k==i||k==j)继续;

for(l = 0;l & lt4;l++){

if(l==i||l==j||l==k)继续;

x[0]= a[I];

x[1]= a[j];

x[2]= a[k];

x[3]= a[l];

/*get +-*/

for(q = 0;q & lt4;q++){

y[0]= f[q];

for(r = 0;r & lt4;r++){

y[1]= f[r];

for(s = 0;s & lt4;s++){

y[2]= f[s];

/*开始*/

test24(x,y);

}

}

}

n++;

}

}

}

}

printf("total=%d\n ",total);

printf(" * * * * * * end * * * * * * \ n ");

printf("继续?1:是2:否\ n ");

scanf("%d ",& amp去);

}

printf("拜拜!\ n ");

}

float sum(float xx,float yy,char mm){

开关(毫米){

case '+':返回(xx+YY);打破;

case '-':返回(xx-YY);打破;

case ' * ':return(xx * YY);打破;

案例“/”:

如果(yy!=0){

返回(xx/YY);打破;

}

否则{

返回0;打破;

}

}

}

void test24(float x[],char m[]){

int ii

float s[5];

s[0]= sum(sum(x[0],x[1],m[0]),x[2],m[1]),x[3],m[2]);

s[1]=sum(sum(x[0],sum(x[1],x[2],m[1]),m[0],x[3],m[2]);

s[2]=sum(x[0],sum(sum(x[1],x[2],m[1]),x[3],m[2],m[0]);

s[3]=sum(x[0],sum(x[1],sum(x[2],x[3],m[2]),m[1],m[0]);

s[4]=sum(sum(x[0],x[1],m[0]),sum(x[2],x[3],m[2]),m[1]);

for(ii = 0;ii & lt5;ii++){

if(fabs(s[ii]-24.0)& lt;0.1){

如果(ii==0)

printf("((% 1.0 f % c % 1.0 f)% c % 1.0 f)% c % 1.0 f \ n ",x[0],m[0],x[1],m[1],x[2],m[2],x[3]);

else if(ii==1)

printf("(% 1.0 f % c(% 1.0 f % c % 1.0 f))% c % 1.0 f \ n ",x[0],m[0],x[1],m[1],x[2],m[2],x[3]);

else if(ii==2)

printf(" % 1.0 f % c((% 1.0 f % c % 1.0 f)% c % 1.0 f)\ n ",x[0],m[0],x[1],m[1],x[2],m[2],x[3]);

else if(ii==3)

printf(" % 1.0 f % c(% 1.0 f % c(% 1.0 f % c % 1.0 f))\ n ",x[0],m[0],x[1],m[1],x[2],m[2],x[3]);

else if(ii==4)

printf("(% 1.0 f % c % 1.0 f)% c(% 1.0 f % c % 1.0 f)\ n ",x[0],m[0],x[1],m[1],x[2],m[2],x[3]);

total++;

count++;

/*每次入住20英镑*/

if(count & gt;=page){

printf("回车继续\ n ");

scanf("%c ",& amptemp);

count = 0;

}

}

}

}