#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define EMPTY_Z -1
#define UNINIT_Z -2
int main (void) {
time_t t;
int i, j;
int z [4][4];
int v;
int k, l;
int n;
srand ((unsigned)time (&t));
for (i = 0; i < 4; i++) {
for (j = 0; j < 4; j++)
z [i][j] = j;
}
for (n = rand () % 100; n >= 0; n--) {
for (i = 0; i < 4; i++) {
if ((rand () % 2) == 0) {
for (k = 0; k < 4; k++) {
for (l = k + 1; l < 4; l++) {
if (z[i][l] > z[i][k]) {
t = z [i][l];
z [i][l] = z[i][k];
z [i][k] = t;
}
}
}
}
else {
for (k = 0; k < 4; k++) {
for (l = k + 1; l < 4; l++) {
if (z[i][l] < z[i][k]) {
t = z [i][l];
z [i][l] = z[i][k];
z [i][k] = t;
}
}
}
}
}
for (j = 0; j < 4; j++) {
if ((rand () % 2) == 0) {
for (k = 0; k < 4; k++) {
for (l = k + 1; l < 4; l++) {
if (z[l][j] > z[k][j]) {
t = z [l][j];
z [l][j] = z[k][j];
z [k][j] = t;
}
}
}
}
else {
for (k = 0; k < 4; k++) {
for (l = k + 1; l < 4; l++) {
if (z[l][j] < z[k][j]) {
t = z [l][j];
z [l][j] = z[k][j];
z [k][j] = t;
}
}
}
}
}
}
for (i = 0; i < 4; i++) {
for (j = 0; j < 4; j++)
printf ("%i ", z[i][j]);
printf ("\n");
}
printf ("Zustand\tEingabe\tAusgabe\tFolgezustand\n");
for (i = 0; i < 4; i++) {
for (j = 0; j < 4; j++)
printf ("%i\t\t%i\t\t%i\t\t%i\n", i, j, rand () % 4, z[i][j]);
}
return 0;
}