Hilfsfunktionen zum lesen und schrieben einer Matrix:

// File matio.c

#include <stdio.h>
#include "Matrix.h"

// Einfache Eingabe einer Matrix, allgemein gehalten
// fÜr Gleichungsysteme ist m = n + 1
void MatIn (FILE *f, double a[][NMAX], int *n, int *m)
{
  int bFile = 1;
  int i, j;

  if (f == stdin)
    bFile = 0;

  if (!bFile) {
    printf("Matrix Eingabe \n\n");
    printf("Anzahl der Zeilen (< %2i) n = ", NMAX); 
  }
  fscanf (f, "%d", n);
  if (!bFile) printf("Anzahl der Spalten (< %2i) m = ", NMAX); 
  fscanf (f, "%d", m);
  if (!bFile) printf("\n");

  for (i = 0; i < *n; i++ ) {
    if (!bFile) printf("Zeile %2d : ", i+1);
    for (j = 0; j < *m; j++) 
      fscanf(f, "%lf", &a[i][j]);
  }

  if (!bFile) fgetc(f);
  fprintf(f, "\n");

}

void MatOut (FILE *f, double a[][NMAX], int n, int m)
{
  int bFile = 1;
  int i, j;

  if (f == stdout)
    bFile = 0;

  fprintf(f, "\n");
  for (i = 0; i < n; i++ ) {
    for (j = 0; j < m; j++) 
      fprintf (f, "%7.2f  ",a[i][j]);
    fprintf(f, "\n");
  }
  fprintf(f, "--------------------------------------------------------\n");
  if (!bFile) {
    printf("Weiter mit Eingabetaste");
    getchar();
  }
}

Zurück