C
also ich soll die Lösung dynamisch machen und Zeiger-Zeiger verwenden...
Hat jemand eine Idee, denn ich hab die statische Variante eben geschrieben aus der ich dann die dynamische bauen soll.
#include <stdio.h>
#include <malloc.h>
#include <conio.h>
/* Das Ziel ist es bei diesem Programm darauf zu kommen, wie man
die einzelnen Wohnungen mit ihren Daten ansprechen kann */
int main(int argc, char* argv[])
{
int **piZimmer;
int *piZimmerdaten = (int*)malloc(sizeof(int)*3);
int Laenge1, Breite1, Laenge2, Breite2, Laenge3, Breite3, Flaeche1, Flaeche2, Flaeche3, i, zimmeranzahl;
printf("Wieviele Zimmer soll ihre Wohnung denn haben ?\n");
scanf("%d", &zimmeranzahl);
piZimmer = (int**)malloc(sizeof(int*)*zimmeranzahl);
printf("%s%d%s", "Bitte geben sie die Laenge und Breite fuer das ", zimmeranzahl-2,". Zimmer ein: \n");
printf("Bitte Laenge eingeben: ");
scanf("%d", &Laenge1);
printf("Bitte Breite eingeben: ");
scanf("%d", &Breite1);
*(piZimmerdaten) = Laenge1;
*(piZimmerdaten+1) = Breite1;
Flaeche1 = Laenge1 * Breite1;
*(piZimmerdaten+2) = Flaeche1;
*piZimmer = piZimmerdaten;
printf("%d%s%d%s%d\n", piZimmer[0][0], " x ", piZimmer[0][1], " = ", piZimmer[0][2]);
printf("%s%d%s", "Bitte geben sie die Laenge und Breite fuer das ", zimmeranzahl-1,". Zimmer ein: \n");
printf("Bitte Laenge eingeben: ");
scanf("%d", &Laenge2);
printf("Bitte Breite eingeben: ");
scanf("%d", &Breite2);
*(piZimmerdaten) = Laenge2;
*(piZimmerdaten+1) = Breite2;
Flaeche2 = Laenge2 * Breite2;
*(piZimmerdaten+2) = Flaeche2;
*(piZimmer+1) = piZimmerdaten;
printf("%d%s%d%s%d\n", piZimmer[1][0], " x ", piZimmer[1][1], " = ", piZimmer[1][2]);
printf("%s%d%s", "Bitte geben sie die Laenge und Breite fuer das ", zimmeranzahl,". Zimmer ein: \n");
printf("Bitte Laenge eingeben: ");
scanf("%d", &Laenge3);
printf("Bitte Breite eingeben: ");
scanf("%d", &Breite3);
*(piZimmerdaten) = Laenge3;
*(piZimmerdaten+1) = Breite3;
Flaeche3 = Laenge3 * Breite3;
*(piZimmerdaten+2) = Flaeche3;
*(piZimmer+2) = piZimmerdaten;
printf("%d%s%d%s%d\n", piZimmer[2][0], " x ", piZimmer[2][1], " = ", piZimmer[2][2]);
getch();
return 0;
}
Ich habe noch einen Zusatz eingebaut, in dem alle Zimmerflächen zusammenaddiert werden und dabei ist ein kleiner Fehler aufgetreten, denn alle Zimmerflächen nehmen dem Wert der letzten Zimmerfläche an, wodurch ein falscher Wert heraus kommt. Woran kann das liegen ?:
printf("%d%d%d", piZimmer[0][2]+piZimmer[1][2]+piZimmer[2][2])
Ich benutze das hier !