24点C语言源代码
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;
}
}
}
}