_tnt_
Lt. Junior Grade
- Registriert
- Aug. 2006
- Beiträge
- 482
hallo,
ich habe folgende übungsaufgabe bekommen:

nr. 1 habe ich erledigt (code habe ich aber nicht hoch geladen - irrelevant), nr. 2 habe ich auch erledigt und nr. 3 ist fast fertig.
wie man sieht, habe ich jetzt ein array mit fixer größe angegeben. ich möchte es aber so machen, dass der größere koordinatenpunkt (z.B.: A(1|1) und B(8|5) in diesem Fall B) die größe des arrays angibt.
nur wie kann ich das machen? mit einer variable kann ich ja keine array-größe angeben?
vielleicht kann mir ja jemand helfen.
vielen dank im voraus und noch nen schönen abend.
ich habe folgende übungsaufgabe bekommen:

nr. 1 habe ich erledigt (code habe ich aber nicht hoch geladen - irrelevant), nr. 2 habe ich auch erledigt und nr. 3 ist fast fertig.
wie man sieht, habe ich jetzt ein array mit fixer größe angegeben. ich möchte es aber so machen, dass der größere koordinatenpunkt (z.B.: A(1|1) und B(8|5) in diesem Fall B) die größe des arrays angibt.
nur wie kann ich das machen? mit einer variable kann ich ja keine array-größe angeben?
Code:
#include<stdlib.h>
#include<stdio.h>
// ---<Define & Global>---
#define XACHSE 10 //größe vom array
#define YACHSE 10 //größe vom array
char koord[XACHSE][YACHSE]; // definiert das array für das rasta
// ---<Funktionsdeklaration>---
void rasta();
void vergleich();
void ausgabe();
// ---<Funktionsdeffinition>---
void rasta(int x1, int y1, int x2, int y2)
{
int hoehe=0, breite=0, count1=0, count2=0;
for(hoehe=0; hoehe<YACHSE; hoehe++)
{
for(breite=0; breite<XACHSE; breite++)
{
koord[hoehe][breite]='.';
}
}
}
void vergleich(int x1, int y1, int x2, int y2)
{
int mx=0, my=0;
if(abs (x1-x2) <= 1 && abs (y1-y2) <= 1)
{
// Bildschirm Ausgabe
printf("Punkt A: %d, %d\n", x1, y1);
printf("Punkt B: %d, %d\n", x2, y2);
// Werte in das Array eintragen
koord[x1-1][y1-1]='x';
koord[x2-1][y2-1]='x'; //minus 1 damit es im erray auf der richtigen position ist
}
else
{
mx=(x2+x1)/2;
my=(y2+y1)/2;
vergleich(mx, my, x2, y2);
vergleich(x1, y1, mx, my);
}
}
void ausgabe(int x1, int y1, int x2, int y2)
{
int hoehe=0, breite=0, count1=0, count2=0;
for(hoehe=0; hoehe<YACHSE; hoehe++)
{
for(breite=0; breite<XACHSE; breite++)
{
printf("%c ", koord[hoehe][breite]);
}
printf("\n");
}
}
// ---<Main>---
int main()
{
int x1=0, y1=0, x2=0, y2=0;
puts("Koordinaten Punkt A");
scanf("%d %d", &x1, &y1);
fflush(stdin);
puts("\nKoordinaten Punkt B");
scanf("%d %d", &x2, &y2);
fflush(stdin);
rasta(x1, y1, x2, y2);
vergleich(x1, y1, x2, y2);
ausgabe(x1, y1, x2, y2);
}
vielleicht kann mir ja jemand helfen.
vielen dank im voraus und noch nen schönen abend.