Daffi Geschrieben 16. Dezember 2008 Geschrieben 16. Dezember 2008 Hi, also mein Problem lautet wie folgt: Ziel ist es viele Noten eingeben zu lassen(beliebig) und bei eingabe von 0 den Durchschnitt zu errechnen.Er nimmt alle Noten(float) mit .3 .5 .7 .Die Berrechnung ist noch nicht implementiert. Mein Problem ist das wie groß ich das Eingabe Feld auch mache, er nur 2 Zahlen eingeben lässt.Viellecht kann man auch mit malloc ein n-dimensionales Array anfertigen,wobei ich nicht so richtig weis wie. Wäre für Hilfe dankbar. #include <stdio.h> #include <conio.h> #include <stdlib.h> int main() { int i=0; int int_nachkomma[20]; int int_vorkomma[20]; float noten_eingabe[22];//Speicherproblem! printf("\nBitte ihre Schulnoten eingeben:\n"); do{ while((0==scanf("%f",¬en_eingabe)) || (noten_eingabe<0)){ //Abfangen von falschen eingaben fflush(stdin); printf("Keine positive Zahl!."); } int_vorkomma=noten_eingabe; //Vorkomma speichern int_nachkomma=((noten_eingabe*10.0+0.00001)-(int_vorkomma*10.0)); //Rest Filtern if ((int_nachkomma==3)||(int_nachkomma==5)||(int_nachkomma==7)||(int_nachkomma==0)) ; // Filtern der Nachkommastelle else printf("Keine positive Komma (3,5,7) Zahl!"); i++; } while(noten_eingabe!=0.0); getch(); return 0; } Zitieren
Klotzkopp Geschrieben 16. Dezember 2008 Geschrieben 16. Dezember 2008 Ein kleiner Tipp: Für diese Aufgabe brauchst du gar kein Array. Für den Durchschnitt brauchst du nur Summe und Anzahl. Zitieren
Daffi Geschrieben 16. Dezember 2008 Autor Geschrieben 16. Dezember 2008 Du meinst den Float einlesen und dann sofort checken bzw. counter mitlaufen lassen.Aber wie prüfe ich dann auf die Nachkommastelle? Bzw wo liegt mein Problem? Danke schon mal ich probiere es nochmal. Zitieren
Jan Jansen Geschrieben 16. Dezember 2008 Geschrieben 16. Dezember 2008 Reduzier doch erstmal die Komplexität, gehe von "passenden" Zahlen aus und schreib den Rest von deinem Programm (also ein Programm was zu n Float-Zahlen den Notendurchschnitt ausrechnet). Dann überlege dir, was überhaupt passieren soll wenn eine Zahl ungültig ist (am einfachsten läßt man die Zahl dann für den Durchschnitt weg) Dann überlege wie du Floatzahlen auf Gültigkeit überprüfst Hinweis: Gleitkommazahlen haben auch bei einfachsten Berechnungen Ungenaugikeiten. Deshalb prüft man meist auf einen Wertebereich z.B. ist meine Zahl == 2? Delta = 0.00001 wenn (2-Delta) < Zahl < (2+Delta) dann wahr sonst falsch Zitieren
Daffi Geschrieben 16. Dezember 2008 Autor Geschrieben 16. Dezember 2008 Super Hinweis mit dem Delta. Hat geklappt. Und auch das es ihne array geht war ein klasse Hinweis Danke Leute Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.