hi an alle.

joeengel

Grünschnabel
bin neue hier und ich lerne gerade die C sprache .hier is mein problem.
Code:
#include <stdio.h>
int m;
double min (double feld[]){
int i; double hilf;
for (i=0;i<m;i++){
if(feld[0]>feld[i])
hilf=feld[0];
feld[0]=feld[i];
feld[i]=hilf;
}
}
printf("Das Minimun ist %lf \n", feld[0]);
return feld[0]; 

}

int main (void) {
char b;
int forsetzung=1;
while(forsetzung!=0){
printf("Bitte geben Sie die Länge des Feldes ein\n");
scanf("%d",&m);
while(m>20){
printf("Bitte geben Sie nochmal die Länge des Feldes ein, die Länge muss <= 20 ******!!\n");
scanf("%d",&m);
}
double feld[m];
int j,a;
for (j=0;j<m;j++){
a=j+1;
printf("Bitte geben das  %d Element: ", a);
scanf("%lf",&feld[j]);
}
min (feld);

printf("Drücken Sie die Taste j um fortzusetzen!\n");
 scanf("%s",&b);
 if (b=='j') forsetzung=1;
 else {printf("Die Taste j wurde nicht gedrückt. Ende******!\n"); break;}
}

ich bekomme den Fehlermeldung:
Code:
wp-ss2011@wp-ss2011:~$ gcc minimun.c
minimun.c:12: error: expected declaration specifiers or ‘...’ before string constant
minimun.c:12: error: expected declaration specifiers or ‘...’ before ‘feld’
minimun.c:12: warning: data definition has no type or storage class
minimun.c:12: error: conflicting types for ‘printf’
minimun.c:12: note: a parameter list with an ellipsis can’t match an empty parameter name list declaration
minimun.c:13: error: expected identifier or ‘(’ before ‘return’
minimun.c:15: error: expected identifier or ‘(’ before ‘}’ token
minimun.c: In function ‘main’:
minimun.c:40: error: expected declaration or statement at end of input

ich weiße nicht wo der Fehler liegt. ich habe vergeblich danach gesucht.

danke voraus für eure Antworten.
 
Hi

Bitte halte dich in Zukunft an Netiquette Punkt 15 und verwende die Codetags.
Für C/C++-Code: [code=cpp]...[/code]

Zum letzten Fehler: Im main sind mehr { als }.
Irgendwo hast du die Schließende vergessen.

Die anderen Fehler: In der Funktion min hast du umgekehrt mehr } als { ...
und beendest die Funktion damit vor dem printf.
Das printf, return und eine } stehen jetzt irgendwie so allein da, ohne irgendwo dazuzugehören...daher die Fehler.

Gruß
 
Hallo joeengel,

also erstmal kann ich dir nur raten bisschen auf deine Groß- und Kleinschreibung zu achten, sonst bekommst bestimmt mal von nem Moderator feuer^^

Zum Quellcode:
Den Quellcode am besten mal in CPP-Tags einbinden für die Übersicht und am besten auf Wellenstruktur achten beim Kodieren. Wenn du mal etwas mehr Quellcode hast, ist ne gute Struktur Gold wert^^

Zur Sache an sich:
Du hast in Deiner min-Funktion vor dem print- Aufruf eine schließende Klammer die da nicht hingehört und
in der main- Funktion fehlt die schließende Klammer der äußeren while- Schleife.
Solche Dinge erkennt man ganz gut mit ner guten Wellenstruktur ;-)

Hier mal der Source (nicht getestet!!):
C++:
#include <stdio.h>

int m;

double min (double feld[]) {
	int i;
	double hilf;
	
	for(i=0;i<m;i++){
		if(feld[0]>feld[i])
			hilf=feld[0];
		feld[0]=feld[i];
		feld[i]=hilf;
	}
	
	printf("Das Minimun ist %lf \n", feld[0]);
	return feld[0]; 
}

int main (void) {
	char b;
	int forsetzung=1;
	while(forsetzung!=0){
		printf("Bitte geben Sie die Länge des Feldes ein\n");
		scanf("%d",&m);
		while(m>20){
			printf("Bitte geben Sie nochmal die Länge des Feldes ein, die Länge muss <= 20 ******!!\n");
			scanf("%d",&m);
		}
		double feld[m];
		int j,a;
		for (j=0;j<m;j++){
			a=j+1;
			printf("Bitte geben das %d Element: ", a);
			scanf("%lf",&feld[j]);
		}
		min (feld);
		
		printf("Drücken Sie die Taste j um fortzusetzen!\n");
		scanf("%s",&b);
		
		if (b=='j')
			forsetzung=1;
		else {
			printf("Die Taste j wurde nicht gedrückt. Ende******!\n");
			break;
		}
	}
}
 
Zuletzt bearbeitet von einem Moderator:
Zurück