Unbekannter Fehler bei Addition von 3x3 Matrizen
-
Hey Leute,
ich habe hier ein Programm geschrieben, um zwei 3x3 dimensionale Matrizen miteinander zu addieren. Die erste Zeile vom Ergebnis wird richtig berechnet aber die anderen Zeilen nicht !
Danke im voraus
Hier der Code:
#include <stdio.h> #define zeile 3 #define spalte 3 #define lenght1 9 #define lenght2 9 void einlesen(int feld[][spalte] ){ int i; //Laufindex für Zeile int j; //Laufindex für Spalte for(i=0; i<zeile; i++){ for(j=0; j<spalte; j++){ printf("[%i][%i]: ",i+1,j+1); scanf("%i",&feld[i][j]); fflush(stdin); } } } void addieren(int feld1[][spalte], int feld2[][spalte]){ int i; //Laufindex für Zeile int j; //Laufindex für Spalte int erg[zeile][spalte]; for(i=0; i<zeile; i++){ for(j=0; j<spalte; j++){ erg[i][j] = feld1[i][j] + feld2[i][j]; } } for(i=0; i<zeile; i++){ for(j=0; j<spalte; j++){ printf("%i\t",erg[i+1][j+1]); } printf("\n"); } } int main(){ int array1[zeile][spalte]; int array2[zeile][spalte]; printf("Das erste Matrix\n"); einlesen(array1); printf("\n----------------------------------------------------------\n"); printf("\nDas zweite Matrix\n"); einlesen(array2); printf("\n----------------------------------------------------------\n"); printf("Die Addition liefert ein neues Matrix:\n"); addieren(array1, array2); return 0; }
-
Zeile 35 (
printf("%i\t",erg[i+1][j+1]);
) ist falsch.Du gibst da nicht den Index für den Menschen aus, sondern greifst auf das Array zu.