ERLEDIGT
NEIN
NEIN
ANTWORTEN
4
4
ZUGRIFFE
231
231
EMPFEHLEN
-
Hallo an alle,
ich bin am Beginn meines Programms und soll entweder Daten von einer Datei einlesen oder die Daten per Tastatur einlesen. Die Eingabedatei sieht beispielsweise so aus:
4 5 1 4
1 2 6
1 3 5
2 3 2
2 4 7
3 4 3
Mein Problem ist (unter anderem
): Ich möchte das Nullsetzen von capacity in eine eigene Funktion schreiben. Aber es funktioniert irgendwie nicht. Ich bekomme folgende Fehlermeldung:
C:\Users\andrea\Documents\dateneinlesen.c(80): error #2162: Extraneous return value.
C:\Users\andrea\Documents\dateneinlesen.c(88): error #2162: Extraneous return value.
*** Error code: 1 ***
Das ist der Code der funktioniert:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
#include <stdio.h> #include <stdlib.h> //wird für die Funktion malloc benötigt //int *queque; //int visited[3]; //int tail, head; int number_nodes, number_edges, source, sink; int **capacity; //int **flow; //int *vorgaenger; //int minimum (int u, int v); //int maximum (int a, int b); //void in_queque (int x); //int out_queque (void); //int bfs (int s, int t); int main(void) { int i, j, h, k, c, y; char eingabe; //int max_cap; //int max_flow = 0; printf("Daten aus Datei (d) oder Daten eingeben (e)\n"); scanf("%c", &eingabe);//mit %char hats funktioniert geht auch %s if (eingabe == 'd') { FILE*daten = fopen("datenkomb.txt", "r"); if (daten == NULL) fprintf(stderr, "Kann Datei nicht oeffnen\n"); else fscanf(daten, "%d %d %d %d", &number_nodes, &number_edges, &source, &sink); capacity = malloc(number_nodes*sizeof(int*));//oder (int*)malloc(number_nodes*sizeof(int)) if (capacity == NULL) { puts("Fehler bei der Speicherzuweisung."); return 1; } for (i=0; i<number_nodes;i++) { capacity[i] = malloc((number_nodes)*sizeof(int)); if (capacity[i] == NULL) { puts("Fehler bei der Speicherzuweisung."); return 1; } } for (i=0; i<number_nodes; i++) { for (j=0; j< number_nodes; j++) capacity[i][j] = 0; } for (i=0; i< number_edges; i++){ //Knoten 1 wird zu Knoten 0 usw. fscanf (daten, "%d %d %d", &h, &k, &c) ; capacity[h-1][k-1] = c; printf("%d %d %d \n", h, k, c); } fclose(daten); } for (i=0; i<number_nodes; i++) { for (j=0; j< number_nodes; j++){ printf("%d", i); printf("%d",j); printf("%d\n",capacity[i][j]); } } //else }
Das ist der Code mit Funktion:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
#include <stdio.h> #include <stdlib.h> //wird für die Funktion malloc benötigt //int *queque; //int visited[3]; //int tail, head; int number_nodes, number_edges, source, sink; int **capacity; int **u; //int **flow; //int *vorgaenger; //int minimum (int u, int v); //int maximum (int a, int b); //void in_queque (int x); //int out_queque (void); //int bfs (int s, int t); void makezero(int**u, int v, int w); int main(void) { int i, j, h, k, c, y; char eingabe; //int max_cap; //int max_flow = 0; printf("Daten aus Datei (d) oder Daten eingeben (e)\n"); scanf("%c", &eingabe);//mit %char hats funktioniert geht auch %s if (eingabe == 'd') { FILE*daten = fopen("datenkomb.txt", "r"); if (daten == NULL) fprintf(stderr, "Kann Datei nicht oeffnen\n"); else fscanf(daten, "%d %d %d %d", &number_nodes, &number_edges, &source, &sink); makezero(capacity, number_nodes, number_edges); for (i=0; i< number_edges; i++){ //Knoten 1 wird zu Knoten 0 usw. fscanf (daten, "%d %d %d", &h, &k, &c) ; capacity[h-1][k-1] = c; printf("%d %d %d \n", h, k, c); } fclose(daten); } for (i=0; i<number_nodes; i++) { for (j=0; j< number_nodes; j++){ printf("%d", i); printf("%d",j); printf("%d\n",capacity[i][j]); } } //else //printf("Eingabe der Daten folgenderweise:\n Anzahl der Knoten Anzahl dder Kanten Quelle Senke\n für i-te Kante:Anfangsknoten Endknoten Kapazität\n zwischen den Werten ein Leerzeichen."); //einlesen von eingabe } void makezero(int **u, int v, int w) { int i,j; u = malloc(v*sizeof(int*));//oder (int*)malloc(v*sizeof(int)) if (u == NULL) { puts("Fehler bei der Speicherzuweisung."); return 1; } for (i=0; i<v;i++) { u[i] = malloc((v)*sizeof(int)); if (u[i] == NULL) { puts("Fehler bei der Speicherzuweisung."); return 1; } } for (i=0; i<v; i++) { for (j=0; j< v; j++) u[i][j] = 0; } }
Danke für eure Hilfe******
lg
Sabine
-
Hallo,
Ich hab jetzt den Code nicht auf seine Funktionalität hin überprüft, aber die Fehlermeldung bekommst du, weil du in einer Funktion mit Rückgabetyp void einen Return-Wert zurückgibst.
-
Hi und Willkommen bei tutorials.de

Schreib ans Ende von makezero ein
und ändere den Returntyp von makezero von void auf int.Code cpp:1
return 0;
GrußNetiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
"Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?
-
Danke für eure schnellen Antworten. Wie ihr seht bin ich Programmierneuling. Hab jetzt die return Werte auf return 0 gesetzt.
Das Programm wird aber nicht ausgeführt. Bekomme folgende Fehlermeldung:
***Process returnes -1073741819***
Danke nochmal******!
lg Sabine
-
Das ist (wahrscheinlich) keine Fehlermeldung.
Schreib ans main-Ende auch noch ein
Code cpp:1
return 0;
Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
"Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?
Ähnliche Themen
-
Wie Z-Index richtig anwenden?
Von nchristoph im Forum CSSAntworten: 3Letzter Beitrag: 03.03.11, 07:47 -
Photoshop richtig anwenden
Von benija im Forum PhotoshopAntworten: 4Letzter Beitrag: 12.10.08, 21:04 -
malloc/realloc richtig benutzen
Von janosch im Forum C/C++Antworten: 1Letzter Beitrag: 20.12.05, 21:08 -
Texturen richtig anwenden
Von autonom181 im Forum Cinema 4DAntworten: 5Letzter Beitrag: 29.03.05, 12:49 -
Deformator richtig anwenden
Von feierwasser im Forum Cinema 4DAntworten: 5Letzter Beitrag: 16.09.04, 10:17





Zitieren

Login






