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]); } }
-
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 beiint 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.