Übung mit structs

Neue Frage »

Auf diesen Beitrag antworten »
Nunzio Übung mit structs

Hey, Ich hab versucht ein Programm zu schreiben um Autodaten zu verwalten, nur leider bekomm ich das nicht ans laufen.

Könnt ihr mir einen Tipp geben? Ich weiß echt nicht wo der Fehler ist. :/

Vielen Dank im Voraus.

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:
#include <stdio.h> 
#include <string.h> 
#include <stdlib.h> 
#define MAX 30  

void addcar(int nr, struct car new[]){ 	
printf("Bitte geben Sie die Marke des Wagens an: "); 	
fgets(new[nr].marke, 30, stdin); 	
printf("Bitte geben Sie das Modell des Wagens an: "); 	
fgets(new[nr].modell, 30, stdin); 	
printf("Bitte geben Sie das Baujahr des Wagens an: "); 	
fgets(new[nr].baujahr, 30, stdin); 
printf("Bitte geben Sie die Pferdestärken des Wagens an: "); 	
fgets(new[nr].ps, 30, stdin); 
}   

struct car { 	
char marke[MAX]; 	
char modell[MAX]; 	
int baujahr; 	
int ps; } inf[200];
 
int main(void){ 	
static int fertig = 0; 	
char menu; 	
static int index = 0;; 	 	
while(fertig!= 1){ 		
printf("Willkommen in der Automobildatenbank AMDB.\n"); 		
printf("Bitte waehlen Sie unter folgenden Aktionen:\n"); 		
printf("a : Auto in Datenbank aufnehmen.\nl : Alle eingespeicherten Autos auflisten.\nd : Auto anhand von Index loeschen.\ne : Beenden der Datenbank.\n"); 		scanf("%c", &menu); 		
getchar(); 		
switch(menu){ 			
case 'a' : 			
addcar(index, inf); 			
index++; 			
break; 			
case 'l' : 			
break; 			
case 'd' : 			
break; 			
case 'e' : 			
fertig = 1; 			
break; 			
default : 			
printf("Funktion nicht verfuegbar. Versuchen Sie es erneut."); 			break; 		 		
} 	
} 	
return 0; 
}


Ist natürlich noch nicht fertig. Und sorry für die fehlenden Tabs, irgendwie kopiert er die hier nicht rein.
 
Auf diesen Beitrag antworten »
eulerscheZahl

Markiere deinen Code mal. Die Einrückungen sind schon vorhanden, nur eben am Ende der Zeile.
Jetzt kompiliert es zumindest:
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:
#include <stdio.h> 
#include <string.h> 
#include <stdlib.h> 
#define MAX 30  

//Deklaration der struct kommt vor Verwendung
struct car { 	
	char marke[MAX]; 	
	char modell[MAX]; 	
	int baujahr; 	
	int ps; } 
inf[200];

void addcar(int nr, struct car new[]){ 	
	printf("Bitte geben Sie die Marke des Wagens an: "); 	
	fgets(new[nr].marke, MAX-1, stdin); //MAX - 1 statt 30	
	printf("Bitte geben Sie das Modell des Wagens an: "); 	
	fgets(new[nr].modell, MAX-1, stdin); 	
	printf("Bitte geben Sie das Baujahr des Wagens an: ");
	scanf("%d", &(new[nr].baujahr)); //das ist kein string
	printf("Bitte geben Sie die Pferdestärken des Wagens an: "); 	
	scanf("%d", &(new[nr].ps));
}   
 
int main(void){ 	
	static int fertig = 0;
	char menu;
	static int index = 0;
	while(fertig!= 1) { 		
		printf("Willkommen in der Automobildatenbank AMDB.\n"); 		
		printf("Bitte waehlen Sie unter folgenden Aktionen:\n"); 		
		printf("a : Auto in Datenbank aufnehmen.\nl : Alle eingespeicherten Autos auflisten.\nd : Auto anhand von Index loeschen.\ne : Beenden der Datenbank.\n");
		scanf("%c", &menu); 		
		getchar(); 		
		switch(menu){ 			
			case 'a' : 			
				addcar(index, inf); 			
				index++; 			
				break; 			
			case 'l' : 			
				break; 			
			case 'd' : 			
				break; 			
			case 'e' : 			
				fertig = 1; 			
				break; 			
			default : 			
				printf("Funktion nicht verfuegbar. Versuchen Sie es erneut.");
				break; 		 		
		} 	
	}
	return 0; 
}
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »