DeusExMachina
Lt. Junior Grade
- Registriert
- Jan. 2008
- Beiträge
- 383
Moin Moin,
im rahmen meiner Experimente mit C habe ich folgende Aufgabe zu lösen:
Eine Matrix soll teilweise ausgelesen werden (nur die mittleren 256 Felder, also [128|128] bis [355|355]) und dann diese so in die alte Matrix geschrieben werden das diese werte jeweils vier Felder belegen (bei einem Bild wäre das eine Verdoppelung der Größe eines bestimmten Bereiches).
Meine Idee war der folgende Code aber ich habe das Problem das eben keine Überschreibung erfolgt und ich sehe den Fehler nicht vielleicht kann mich ja jemand in die richtige Richtung schubsen.
im rahmen meiner Experimente mit C habe ich folgende Aufgabe zu lösen:
Eine Matrix soll teilweise ausgelesen werden (nur die mittleren 256 Felder, also [128|128] bis [355|355]) und dann diese so in die alte Matrix geschrieben werden das diese werte jeweils vier Felder belegen (bei einem Bild wäre das eine Verdoppelung der Größe eines bestimmten Bereiches).
Meine Idee war der folgende Code aber ich habe das Problem das eben keine Überschreibung erfolgt und ich sehe den Fehler nicht vielleicht kann mich ja jemand in die richtige Richtung schubsen.
Code:
int change_data(short matrix[512][512])
{
int zeile= 0;
int spalte = 0;
short h_matrix[256][256];
int h_zeile=0;
int h_spalte=0;
short cache = 0;
//Manupulieren der Daten in der Matrix
printf("zoome\n");
for(zeile = 0; zeile < 256; zeile++) // Festlegen der äußeren Abbruchfunktion
{
for(spalte = 0; spalte < 256; spalte++) // Festlegen der inneren Abbruchfunktion
{
h_matrix[zeile][spalte] = matrix[zeile+128][spalte+128];
}
}
zeile = 0;
spalte = 0;
h_zeile = 0;
h_spalte = 0;
while(zeile < 512)
{
printf("matrix %d , %d\n" ,zeile ,spalte);
printf("hmatrix %d , %d\n" ,h_zeile ,h_spalte);
while(spalte <512)
{
cache = h_matrix[h_zeile][h_spalte];
matrix[zeile][spalte] = cache;
matrix[zeile][spalte+1] = cache;
matrix[zeile+1][spalte] = cache;
matrix[zeile+1][spalte+1]= cache;
spalte = spalte + 2;
h_spalte = h_spalte + 1;
}
zeile = zeile + 2;
h_zeile = h_zeile+1;
}
return 0;
}
Zuletzt bearbeitet: