Zum Inhalt springen

Probleme mit Notenberechnung


Empfohlene Beiträge

Geschrieben

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",&noten_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;

}

Geschrieben

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.

Geschrieben

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

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...