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.


Anmelden zum Antworten