Programmieraufgabe: Speicherzugriffe, Arrays usw.

huebstAr

Grünschnabel
Hi an alle!

Haben eine Programmieraufgabe bekommen, die mit dem Thema Speicherverwaltung etc. zu tun hat.
Habe bis jetzt folgendes geschrieben:

Code:
#include <stdio.h>
#include "matrix.h"

void berechneMatrix(double **, double **, double **, unsigned int);
void printMatrix(double **, unsigned int);

void main(void)
{
	double **MatA, **MatB, **MatC;
	unsigned int dim,i,j;

	// Sollte nicht groesser als 5 sein
	printf("Dimension der Matrix eingeben: ");
	scanf("%d", &dim);

	MatA = erzeugeMatrix(dim, dim);
	MatB = erzeugeMatrix(dim, dim);
	MatC = erzeugeMatrix(dim, dim);

    printf("\nMatrix A\n-------------\n");
	for(i=0; i<dim; i++)
	{
		for(j=0; j<dim; j++)
		{
			printf("Element[%d][%d]: ", i,j);
			scanf("%d", &MatA[i][j]); 
		}
	}

    printf("\nMatrix B\n-------------\n");
	for(i=0; i<dim; i++)
	{
		for(j=0; j<dim; j++)
		{
			printf("Element[%d][%d]: ", i,j);
			scanf("%d", &MatB[i][j]); 
		}
	}

	berechneMatrix(MatA, MatB, MatC, dim);

    printMatrix(MatA, dim);
    printf("\n");
    printMatrix(MatB, dim);
    printf("\n");
    printMatrix(MatC, dim);
    scanf("%d", &dim);
}

void berechneMatrix(double **A, double **B, double **C, unsigned int m)
{
	int i,j;
                      
	for(i=0; i<m; i++)
		for(j=0; j<m; j++)
			C[i][j] =i ;
}

void printMatrix(double **MATRIX, unsigned int dimension)
{
     int i,j;
     
     for(i=0; i<dimension; i++)
     {
              for(j=0; j<dimension; j++)
              {
                       printf("%.0d ", MATRIX[i][j]);
              }
              printf("\n");
     }
}

Die Header-Datei und die zugehörige Matrix.c sind vorgegeben, also hierin ist kein Fehler enthalten.

Mein Problem scheint bei der Funktion berechneMatrix() zu liegen, MatA und MatB werden über printMatrix() exakt ausgegeben. MatC hingegen scheint leer/undefiniert zu sein.

Nun frage ich mich, wo der Fehler steckt.
Ich komm einfach nicht drauf.

Gruß
Sören
 
Könntest du die maxtrix.h/.c trotzdem zeigen, auch wenn sie fehlerfrei sind?

edit: Was bedeutet, C ist undefiniert? Was wird denn ausgegeben?

edit2: Was willst du eigentlich in C reinbekommen? Die Summen oder ...?
 
Zuletzt bearbeitet:
Hallo,

berechneMatrix ist korrekt, dafür Ein- und Ausgabe nicht. Deine Matrizen speichern double-Werte, du schreibst und liest sie aber als ob sie ints wären (Formatspezifizierer %d). Du musst beim Einlesen %lf und bei der Ausgabe %f verwenden.

Grüße,
Matthias
 
Zurück