Rechnen mit einer Matrix bzw. mit arrays



  • Guten Nabend,

    zurzeit arbeite ich an einem Projekt fürs Studium und bin auf ein Problem gestoßen, dass ich nicht mehr alleine lösen kann. Ich hoffe ihr könnt mir weiterhelfen.

    Das Thema des Projekts ist lineare Regression. Die Aufgabenstellung verlangt, dass die Punkte aus einer Datei eingelesen werden und dann die beste Gerade ermittelt wird. Für die Berechnung der besten Geraden wurden uns zur vereinfachung Formeln vorgegeben. Wir müssen ledglich aus den X bzw Y-Koordinaten die Summen und Produkte bilden. Doch hier entsteht das Problem. Die Datei hab ich erfolgreich eingelesen und hab die Werte in einer Matrix [10][2] gespeichert. Jetzt will ich die Summe aus allen Werten der ersten Spalte bilden, dies funktioniert aber leider nicht. Das Ergebniss lautet immer -xxxxxxxxx . Der folgende Quellcode zeigt meine Vorgehensweise.

    /*Projekt 3*/
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <conio.h>
    
    int main() {
    
    FILE *datptr;
    char datname [32];
    int i,j;
    double matrix[10][2];
    double gesamt=0	;
    
    /*------Öffnen der Datei------*/
    
    printf ("Bitte Dateiname eingeben: ");
    scanf ("%s", datname);
    printf ("Datei: %s wird geoeffnet!\n", datname);
    datptr = fopen (datname, "r");
    
    while (datptr == NULL)
    {
    printf ("\n Datei: %s konnte nicht geoeffnet werden!!!\n Bitte geben Sie einen gueltigen Dateinamen ein:\n", datname);
    scanf ("%s", datname);
    datptr = fopen (datname, "r");
    }
    
    /*------Einlesen der Werte aus der Datei------*/
    
    for (i=0; i<10; i++ ) {
    
                for (j=0; j<2; j++ ){
    
                  fscanf(datptr, "%d", &matrix[i][j]);    
    
    				}
    
    			}
    
    for (int i=0; i<10; i++ ) {
    
            for (int j=0; j<=1; j++ ){
    
                printf("%d ", matrix[i][j]);   /* Kontrolle der eingelsenen Werte */
    
    				  }
    
    			printf("\n");
    
    			}
    
    for (i=0; i<10; i++ )	{							/* Berechnung der Summe aus der ersten Spalte */
    													/* Hier liegt mein Problem das Ergebniss lautet: -24718.... */	
    	  gesamt+=matrix[i][0];
    
    						}
    
    printf("\n %d",gesamt);
    
    getch();
    
    }
    

    Ich bin noch ein Anfänger in der ganzen Geschichte, habe mir aber trotzdem ein paar Gedanken gemacht. Könnte es sein das die eingelesnen Daten nicht als Zahlen sondern als Zeichen abgespeichert werden, sodass ich natürlich die Summe der Zeichen bilde???

    Was ich noch ganz vergessen hab ist meine Tabelle zu erwähnen. Ich hab ein Textdokument erstellt in dem, in der ersten Spalte 10 mal die 2 steht und in der zweiten Spalte 10 mal die 3 steht. Das Ergebniss der Summe müsste somit für die erste Spalte 20 sein.

    Ich hoffe ihr könnt mir hierbei weiterhelfen, ich danke euch schonmal im voraus.

    MFG



  • Falsche Formatstrings - für double-Werte verwendet man "%lf", "%d" liest/schreibt integer-Werte.



  • Schnelle Antwort, vielen Dank.

    Total übersehen da kommt selbstverständlich "%lf" hin. Ich habs eben geändert und es kommt 20 raus.


Anmelden zum Antworten