programm wiederholen do-while Schleife
-
Guten Tag Community
wir sollen als Aufgabe ein Programm schreiben das
Minima,maxima usw bestimmtdas Programm soll sich auch wiederholen lassen.
Die do-while schleife soll die Funktion wiederholen
aber leider tut sie es nicht
hatte den code aber eig schon in einer anderen Aufgabe da hat es funktioniert
kann mir da evt jemand helfen??
#include <stdio.h> #include <stdlib.h> #include <math.h> #include <ctype.h> //Prototypendeklation// void eingabe(float*,int*); void get_statistikwerte(int,float*,float*); void ausgabe(float*); int main (void) { float* zahlen_feld; char nochmal; int dimension,index=0; float ergebnisse[5]={0}; do { //Textausgabe und einlesen der Var dimension// printf("Von wievielen Werten moechten sie die Statistikwerte bestimmen?\n"); scanf ("%i",&dimension); //Dynamisch den Speierchplatz der var zahlen_feld reservieren// zahlen_feld=(float*)malloc(dimension*sizeof(float)); //Abfrage ob die Reservierung erfolgeich war// if(zahlen_feld == NULL) { printf("Speicherplatz konnte nicht reserviert werden"); return (0); } //Funktion eingabe wird aufgerufen// eingabe(zahlen_feld,&dimension); //funktion statistikwerte wird aufgerufen// get_statistikwerte(dimension,zahlen_feld,ergebnisse); //funktion ausgabe wird aufgerufen// ausgabe(ergebnisse); //while schleife um programm neu zu starten// printf("\n moechten sie nochmal Spielen J/N?"); scanf("%c",&nochmal); nochmal=toupper(nochmal);/*wert von nochmal auf groß damit der Benutzer j oder J eingeben kann*/ } while(nochmal=='J');/*wenn J fängt das programm oben bei der do schleife wieder an*/ //tastaturspeicher loeschen und auf eingabe warten// free(zahlen_feld); fflush(stdin); getchar(); return (1); }
-
Hallo,
hab zwar lange nicht mehr in C programmiert, aber ich hab noch in Erinnerung
das man nach einer Eingabeaufforderung den Eingabepuffer leeren muss,
weil sonst die Gefahr besteht das im Eingabepuffer noch was drin steht und dadurch die nächste Eingabe einfach übersprungen wird...Deswegen glaube ich, wiederholt er das ganze nicht nochmal, denn ansonsten
sehe ich keinen Fehler im Quelltext...Das heißt du müsstest an dieser Stelle
//Textausgabe und einlesen der Var dimension// printf("Von wievielen Werten moechten sie die Statistikwerte bestimmen?\n"); scanf ("%i",&dimension);
nach der Eingabeaufforderung einmal fflush(stdin); aufrufen...
Ich hoffe es funktioniert, kann es nämlich auf diesem Rechner leider gerade nicht testen...
-
ah Super da haste mich auf den richtigen weg gebracht!!
Nachdem ich es an das ende von jeder Funktion geschrieben habe funktioniert es
ich danke dir
vg phil
-
Lest euch beide mal dies hier durch:
http://www.c-plusplus.net/forum/39349
-
Oh... du hast Recht, ich hab vergessen dass das Verhalten der Funktion nicht standardisiert ist, aber wie gesagt, habe lange nicht mehr in C programmiert. :p