Also laut den testwerten:
1. 3/5 2. 4/2 2. 3/3 3. 4/1 4. 4/1 5. 2/5 6. 1/3 7. 1/4
Kommt bei mir wieder dieselbe Reihenfolge raus.
Eigentlich sollte rauskommen:
1. 3/2 2. 5/2 3. 2/4 4.4/1 5. 1/3 6.3/3
Hier nochmal der ganze Code.
1. 3/5 2. 4/2 2. 3/3 3. 4/1 4. 4/1 5. 2/5 6. 1/3 7. 1/4
Kommt bei mir wieder dieselbe Reihenfolge raus.
Eigentlich sollte rauskommen:
1. 3/2 2. 5/2 3. 2/4 4.4/1 5. 1/3 6.3/3
Hier nochmal der ganze Code.
C:
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int Steine[7][2];
int berechnen(int, int);
int einlesen();
int i, j, temp, temp1;
int main(){
printf("Bitte geben Sie nun 7 Dominosteine ein\n");
einlesen();
for(i = 0; i < 7; i++)printf("%d. %d/%d\n", (i+1) ,Steine[i][0], Steine[i][1]);
for(i = 0; i < 7; i++)
if(berechnen(i, i+1) == 0)
{
}
return 0;
}
int einlesen(){
for(i = 0; i < 7; i++){
printf("%d.\n", (i+1));
for(j = 0; j < 2; j++)
scanf("%d", &Steine[i][j]);
}
return 0;
}
int berechnen(int i, int j) {
if(i > 7 || j > 7) return 0;
if(Steine[i][0] == Steine[j][0])
return 1;
else
if(Steine[i][0] == Steine[j][1])
{
/*Drehen*/
temp = Steine[j][1];
Steine[j][1] = Steine[j][0];
Steine[j][0] = temp;
return 1;
}
else{
if (berechnen(i, j+1) == 1)
{
/*Tauschen*/
temp = Steine[i + 1][0];
temp1 = Steine[i + 1][1];
Steine[i + 1][0] = Steine[j + 1][0];
Steine[i + 1][1] = Steine[j + 1][1];
Steine[j + 1][0] = temp;
Steine[j + 1][1] = temp1;
}
}
return 0;
}