hilfeeeeee



  • Hallo,

    ich habe folgendes problem...

    ich soll 2 matrizen mit einander addieren

    Schreiben Sie ein Programm zur komponentenweisen Addition zweier (M x N)-Matrizen. Gehen Sie
    dabei wie folgt vor:
    1. Verwenden Sie zur Definition der Matrix-Grenzen MAX_X und MAX_Y symbolische Konstanten;
    wählen Sie für MAX_X 15 und für MAX_Y 10.

    was mir klar ist das ich das mit arrays mache.aber das problem ist ich bekomme die mit den for schleifen nicht gefüllt.was habe ich falsch gemacht?

    hier mein code

    #include <stdio.h>
    #define max 0
    #define min 0
    
    int matrixA[max][min];
    int matrixB[max][min];
    int matirxC[max][min];
    
    int main(void)
    
    {
    int i;
    int j;
    
       for (i=0;i <= 15;i++)
       {
    
    	   matrixA[max][min]=matrixA[i][j];
    
       for (j=0;j<=10;j++)
    
       {
    
       }
    
       printf("%d",matrixA[max][min]);
       }
    
    }
    

  • Mod

    someone21 schrieb:

    was habe ich falsch gemacht?

    Wenn man's genau nimmt, praktisch alles. Geh mal Zeile für Zeile deinen Code durch und versuch mal für jede Zeile einen Kommentar zu schreiben, was diese macht und was du mit der Aktion bezwecken willst. Mach das nicht nur in Gedanken, sondern wirklich und zeig dein Ergebnis. Dabei dürftest du schon so viele Fehler finden und korrigieren können, dass man hinterher vielleicht versuchen kann, noch etwas an dem Programm zu retten.

    Und bitte wähle aussagekräftige Threadtitel. So etwas wie "hilfeeeeee" werden 50% der Leute ignorieren und die anderen 50% lesen das nur, weil sie etwas amüsant schlechtes erwarten.



  • #include <stdio.h>
    #define max 0 //hier will ich max und min einen wert geben
    #define min 0
    
    int matrixA[max][min]; //das sind meine matrixA,B,C also array [max] [min]
    int matrixB[max][min];
    int matirxC[max][min];
    
    int main(void)
    
    {
    int i;    
    int j;
    
       for (i=0;i <= 15;i++)     //hier will ich die erste matrix 
       {                         //mit einer for schleife füllen
    
           matrixA[max][min]=matrixA[i][j]; //hier gebe ich matrixA[max] =i
    
       for (j=0;j<=10;j++)
    
       {
    
                                       //und hier würde ich das dann für 
                                       //matrixA[min] machen also =j
    
       }
    
       printf("%d",matrixA[max][min]);  //und hier die ausgabe der matrix
       }
    
    }
    

    und das thema kann ich nicht mehr ändern leider 😞



  • Hi,.. uiuiui

    // also erstens:
    int matrixA[max_x][max_y];  
    //max_x und max_y sind die DIMENSIONEN der Matrix, 
    
    // d.h. ein zugriff á la 
    int k=matrixA[max_x][max_y]; //IST FALSCH, der maximale index ist DIMENSION-1
    
    //d.h
    int z=matrixA[max_x-1][max_y-1];//das ist das letzte element der matrix
    
    int x=matrixA[0][0];// zugriff auf das erste element 
    
    //der zugriff auf eine reihe der matrix geht zum beispiel über pointer:
    
    int *reihe = matrixA[b]; //mit 0<= b <max_x
    
    //der zugriff der reihe ist 
    
    x=reihe[a]; //mit 0<= a < max_y
    

    Soooo,... jetzt probierst du es nochmal,...,
    aber achtung bei

    int matrixA[max_x][max_y];
    

    sind noch keine werte initialisiert!!!

    grüüße



  • #define max 0 //hier will ich max und min einen wert geben
    #define min 0
    
    int matrixA[max][min];
    

    ⚠ Das bedeutet das matrixA Null Zeilen und Null Spalten hat.

    Besser (#defines werden i.A. groß geschrieben, damit man sie von Variablen und Funktionen unterscheiden kann)

    #define MAX_X 15 // maximale Anzahl der Spalten
    #define MAX_Y 10 // maximale Anzahl der Zeilen
    
    int matrixA[MAX_Y][MAX_X];
    

    Außerdem steht es so in der Aufgabe.

    Und die Zählung beginnt bei 0 und endet bei MAX_Y-1; darum:

    for (i=0;i < MAX_X;i++)
    

    Beachte das kleiner als Zeichen.


Anmelden zum Antworten