Kontrollieren
-
Ok!
Doku zu scanf: http://msdn.microsoft.com/de-de/library/9y6s16x1(VS.80).aspx
-
hmmmm....werde irgendwie nicht wirklich schlau aus der doku...kannstu du mir helfen _matze???....
-
Das unterscheiden sich scanf und printf, aber hier:
http://msdn.microsoft.com/de-de/library/xdb9w69d.aspx
solltest du erkennen, was du statt "%d" bei scanf nehmen musst. Bei printf sieht es etwas anders aus:
http://msdn.microsoft.com/de-de/library/hf4y5e3w.aspx
MfG,
Probe-Nutzer
-
Und hast du's?
-
_matze schrieb:
Und hast du's?
Geht so, Hab noch auf Galileo Computin nagesehen und da wird mit %d eingelesen, dann stimmt es so???
weil aus [url]http://msdn.microsoft.com/de-de/library/xdb9w69d.aspx [/url] werde ich einfach nicht richtig schlau...weiss auch nicht warummfg 08mmarte
-
Aber mit %d werden Ganzzahlen (Integer) eingelesen! Du willst doch double-Werte einlesen, richtig? Was sollen das überhaupt für Noten sein? Schulnoten??
Wenn du double verwenden willst, probier's mal so:
double Noten [4][4]; scanf("%le", &Noten[i][j]);
-
_matze schrieb:
Aber mit %d werden Ganzzahlen (Integer) eingelesen! Du willst doch double-Werte einlesen, richtig? Was sollen das überhaupt für Noten sein? Schulnoten??
Wenn du double verwenden willst, probier's mal so:
double Noten [4][4]; scanf("%le", &Noten[i][j]);
Mit %e hab ich es schon probiert aber mt %le nicht mal schaun...
-
Du hast auch die Indizes vertauscht:
//falsch! scanf("%le", &Noten[i][j]); //richtig: scanf("%le", &Noten[j][i]);
-
Danke, aber leider gibt es jetzt als Durchschnitt, wenn ich bloss 2 eingebe, 2.00e+000 aus...wie kannich das ändern
printf ("\nDurchschnitts Wert: %.2le", (Noten[m][0] + Noten[m][1] + Noten[m][2] + Noten[m][3] + Noten[m][4])/5);
-
Du musst durch 5. (double) teilen, nicht durch 5 (int).
-
wie meinst du das??....verstehe es nicht ganz...sorry
-
Wenn du
5
schreibst, ist das eine ganzzahlige Konstante. Bildest du einen Quotienten mit einer beliebigen anderen Zahl und dieser int-Konstante, dann ist das Ergebnis ebenfalls ein Ganzzahlen-Wert. 5/2 ist also 2!
Du kennst das doch noch aus der Grundschule. 5/2=2 Rest 1.
Deshalb muss deine Konstante auch ein Fließkommawert sein, wenn du einen Fließkommawert als Ergebnis haben willst. Dazu schreibst du
5.
oder
5.0
, so dass double/double=double ist.
-
Wissen macht ahhh!!.....
jetzt habe ich es verstanden
Danke...
-
Ich denke du hast das gemeint:
printf ("\nDurchschnitts Wert: %.2le", (Noten[m][0] + Noten[m][1] + Noten[m][2] + Noten[m][3] + Noten[m][4])/5.0);
Stimmt es??
wenn ja habe ich an einem anderen ort einen Fehler denn es funktioniert immer noch nicht...
-
Übrigens:
int i=5/2; //Ergebnis der Ganzzahlen-Division ist 2 int i=5%2; //% = Modulo-Operator: REST der Ganzzahlen-Division ist 1;
-
Dann vergleiche mal hiermit:
#include <stdio.h> #include <conio.h> int main() { int i, j, l = 1; double Noten[4][4]; printf ("\nBitte Noten eingeben: "); for (j = 0; j < 4; j++) { printf ("\nGruppe %d\n",l); for (i = 0; i < 4; i++) { scanf("%le", &Noten[j][i]); } l++; } printf ("\nStatistik:\n"); for (j = 0; j < 4; j++) { printf ("\nGruppe %d:\n",j+1); printf ("\nKleinster Wert : "); printf ("\nDurchschnitts Wert: %f", (Noten[j][0] + Noten[j][1] + Noten[j][2] + Noten[j][3])/4.); printf ("\nGr\x94sster Wert : "); printf ("\n"); } while(!_kbhit()); return 0; }
In Ordnung ist das Ganze aber noch lange nicht...
-
08mmarte schrieb:
denn es funktioniert immer noch nicht...
Sowas ist keine ausreichende Fehlerbeschreibung! Wenn irgendetwas nicht klappt, dann beschreibe, was nicht klappt, ok?
-
Bei mir sieht es nun so aus:
#include "stdafx.h" int _tmain(int argc, _TCHAR* argv[]) { int i, j, l = 1; double Noten [5][4]; printf ("\nBitte Noten eingeben: "); for (j = 0; j < 4; j++) { printf ("\nGruppe %d\n",l); for (i = 0; i < 5; i++) { scanf ("%le", &Noten[j][i]); } l++; } printf ("\nStatistik:\n"); for (j = 0; j < 4; j++) { printf ("\nGruppe %d:\n", j+1); printf ("\nKleinster Wert : "); //Folgt noch printf ("\nDurchschnitts Wert: %.2le", (Noten[j][0] + Noten[j][1] + Noten[j][2] + Noten[j][3] + Noten[j][4])/5.); // gibt 2.00e+000 aus printf ("\nGr\x94sster Wert : "); //Folgt noch printf ("\n"); } return 0; }
-
Nicht double Noten [5][4], sondern double Noten [4][5] ...
-
Aber wie bringe ich das e+000 weg?