MAtrizenaddition!!



  • Ich grüße euch!

    Ich habe zur Zeit Probleme wie ich meine Matrizen bis A^n alle zusammen summiere! Die Multiplikation funzt super aber meine Additionsfunktion will einfach nicht! Vielleicht könnt ihr mir da weiterhelfen??

    zu meiner Addierfunktion:

    int *matrix_add(int *a,int *b, int m, int n, int o){
    
    	int i,j,k;
    	int *c;
    
    	c = (int *) calloc(n*m*o, sizeof(int));
    
    	for(i=0; i<m; i++){
    		for(j=0; j<n; j++){
    			*(c+i*n+j)=0;
    			*(c+i*n+j)+= *(a+i*n+j) + (*(b+i*n+j));	
    		}
    
    	}
    
    	return (c);
    

    Und meine meine Main-Programm:

    void main(){
    
    	int n,i;
    
    	printf("Anzahl der Knoten: ");
    	scanf("%d", &n);
    
    	int *a = adjazenzmatrix(n);
    	int *b = a;
    	int *c;
    
    	for(i=0; i<n-1; i++)
    	{
    		b = matrix_mult(b,a,n,n,n);
    		c = b;
    		c = matrix_add(c,a,n,n,n);
    
    	}
    
    	ausgabe(c,n);
    
    	free(a);
    	free(b);
    
    	getchar();
    	getchar();
    
    }//end of main
    

    😕



  • Probier mal so:

    for(i=0; i<m; i++){
      for(j=0; j<n; j++){
        c[i*n+j)] = a[i*n+j] + b[i*n+j);
      }
    }
    

    Gruss,
    MiP

    EDIT: Natürlich nur eckige Klammern bei der Zuweisung

    c[i*n+j] = a[i*n+j] + b[i*n+j];
    

Anmelden zum Antworten