#include <stdio.h>
void format(double * wert, int i, int j, int k, int l);
void ausgabe(char * gleichung, char * op, double erg, int i, int j, int k, int l);
int main(void) {
char op[4]={'+','-','*','/'};
int i,j,k,l;
int f;
double wert[5];
wert[0]=6;
double erg;
char gleichung[15];
gleichung[0]='(';
gleichung[1]='6';
gleichung[3]='2';
gleichung[4]=')';
gleichung[6]='8';
gleichung[8]='9';
gleichung[10]='1';
gleichung[11]='=';
gleichung[12]='1';
gleichung[13]='3';
gleichung[14]='\0';
for(i=0;i<4;i++) {
for(j=0;j<4;j++) {
for(k=0;k<4;k++) {
for(l=0;l<4;l++) {
if((i<2)&&(j<2)&&(k<2)&&(l<2)) {
format(wert,i,j,k,l);
erg=wert[0]+wert[1]+wert[2]+wert[3]+wert[4];
if(erg==13) {
ausgabe(gleichung,op,erg,i,j,k,l);
}
}
if((i<2)&&(j<2)&&(k<2)&&(l>1)) {
format(wert,i,j,k,l);
erg=wert[0]+wert[1]+wert[2]+wert[3]*wert[4];
if(erg==13) {
ausgabe(gleichung,op,erg,i,j,k,l);
}
}
if((i<2)&&(j<2)&&(k>1)&&(l<2)) {
format(wert,i,j,k,l);
erg=wert[0]+wert[1]+wert[2]*wert[3]+wert[4];
if(erg==13) {
ausgabe(gleichung,op,erg,i,j,k,l);
}
}
if((i<2)&&(j<2)&&(k>1)&&(l>1)) {
format(wert,i,j,k,l);
erg=wert[0]+wert[1]+wert[2]*wert[3]*wert[4];
if(erg==13) {
ausgabe(gleichung,op,erg,i,j,k,l);
}
}
if((i<2)&&(j>1)&&(k<2)&&(l<2)) {
format(wert,i,j,k,l);
erg=wert[0]+wert[1]*wert[2]+wert[3]+wert[4];
if(erg==13) {
ausgabe(gleichung,op,erg,i,j,k,l);
}
}
if((i<2)&&(j>1)&&(k<2)&&(l>1)) {
format(wert,i,j,k,l);
erg=wert[0]+wert[1]*wert[2]+wert[3]+wert[4];
if(erg==13) {
ausgabe(gleichung,op,erg,i,j,k,l);
}
}
if((i<2)&&(j>1)&&(k>1)&&(l<2)) {
format(wert,i,j,k,l);
erg=wert[0]+wert[1]*wert[2]*wert[3]+wert[4];
if(erg==13) {
ausgabe(gleichung,op,erg,i,j,k,l);
}
}
if((i<2)&&(j>1)&&(k>1)&&(l>1)) {
format(wert,i,j,k,l);
erg=wert[0]+wert[1]*wert[2]*wert[3]*wert[4];
if(erg==13) {
ausgabe(gleichung,op,erg,i,j,k,l);
}
}
if((i>1)&&(j<2)&&(k<2)&&(l<2)) {
format(wert,i,j,k,l);
erg=wert[0]*wert[1]+wert[2]+wert[3]+wert[4];
if(erg==13) {
ausgabe(gleichung,op,erg,i,j,k,l);
}
}
if((i>1)&&(j<2)&&(k<2)&&(l>1)) {
format(wert,i,j,k,l);
erg=wert[0]*wert[1]+wert[2]+wert[3]*wert[4];
if(erg==13) {
ausgabe(gleichung,op,erg,i,j,k,l);
}
}
if((i>1)&&(j<2)&&(k>1)&&(l<2)) {
format(wert,i,j,k,l);
erg=wert[0]*wert[1]+wert[2]*wert[3]+wert[4];
if(erg==13) {
ausgabe(gleichung,op,erg,i,j,k,l);
}
}
if((i>1)&&(j<2)&&(k>1)&&(l>1)) {
format(wert,i,j,k,l);
erg=wert[0]*wert[1]+wert[2]*wert[3]*wert[4];
if(erg==13) {
ausgabe(gleichung,op,erg,i,j,k,l);
}
}
if((i>1)&&(j>1)&&(k<2)&&(l<2)) {
format(wert,i,j,k,l);
erg=wert[0]*wert[1]*wert[2]+wert[3]+wert[4];
if(erg==13) {
ausgabe(gleichung,op,erg,i,j,k,l);
}
}
if((i>1)&&(j>1)&&(k<2)&&(l>1)) {
format(wert,i,j,k,l);
erg=wert[0]*wert[1]*wert[2]+wert[3]+wert[4];
if(erg==13) {
ausgabe(gleichung,op,erg,i,j,k,l);
}
}
if((i>1)&&(j>1)&&(k>1)&&(l<2)) {
format(wert,i,j,k,l);
erg=wert[0]*wert[1]*wert[2]*wert[3]+wert[4];
if(erg==13) {
ausgabe(gleichung,op,erg,i,j,k,l);
}
}
if((i>1)&&(j>1)&&(k>1)&&(l>1)) {
format(wert,i,j,k,l);
erg=wert[0]*wert[1]*wert[2]*wert[3]*wert[4];
if(erg==13) {
ausgabe(gleichung,op,erg,i,j,k,l);
}
}
}
}
}
}
system("PAUSE");
return 0;
}
void format(double * wert, int i, int j, int k, int l) {
switch(i) {
case 0: wert[1]=2; break;
case 1: wert[1]=(-2); break;
case 2: wert[1]=2; break;
case 3: wert[1]=(double)1/2; break;
}
switch(j) {
case 0: wert[2]=8; break;
case 1: wert[2]=(-8); break;
case 2: wert[2]=8; break;
case 3: wert[2]=(double)1/8; break;
}
switch(k) {
case 0: wert[3]=9; break;
case 1: wert[3]=(-9); break;
case 2: wert[3]=9; break;
case 3: wert[3]=(double)1/9; break;
}
switch(l) {
case 0: wert[4]=1; break;
case 1: wert[4]=(-1); break;
case 2: wert[4]=1; break;
case 3: wert[4]=1; break;
}
}
void ausgabe(char * gleichung, char * op, double erg, int i, int j, int k, int l) {
gleichung[2]=op[i];
gleichung[5]=op[j];
gleichung[7]=op[k];
gleichung[9]=op[l];
printf("%s\tErg: %lf\n",gleichung,erg);
}