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; }
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.
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.
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
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
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden