Kontrollieren
-
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?
-
Gib es mit %f aus.
-
Gib es mit %f aus.
-
Danke, jetzt funktioniert es endlich...
mfg 08mmarte
-
EDIT: Sorry für Trippelpost, das Forum spinnt mal wieder (PHP Error)...
-
Habe ich schon....
Spinnt deinPc oder so??
-
08mmarte schrieb:
Danke, jetzt funktioniert es endlich...
mfg 08mmarte
Ok, dann brauchst du nur noch Funktionen, um den Minimum-/Maximum-Wert deiner Arrays zu bestimmen.
-
genau...
-
Und wie geht das?
Komme leider nicht mehr in meinen account...weiss nicht wieso hab so gar ein neues passwort angefordert und probiert....
-
Hier ein Beispiel für eine Funktion, die dir aus einem double-Array den größten Wert heraussucht und ihn dir zurückgibt (den Wert, nicht den Index):
double MaxDouble(double *arrDoubles,int size) { double max=0; for(int i=0;i<size;i++) { if(arrDoubles[i]>max) { max=arrDoubles[i]; } } return max; } //Aufruf: printf("\nGr\x94sster Wert :%f",MaxDouble(Noten[j],5));
Die Funktion MinDouble machst du selbst, ok?
-
1> c:\dokumente und einstellungen\mamar\eigene dateien\visual studio 2005\projects\notenprogramm\notenprogramm\notenprogramm.cpp(29): Diese Zeile enthält eine '{', die keine Entsprechung hat
for (j = 0; j < 4; j++) { //betrifft diese Zeile double MaxDouble(double *arrDoubles,int size)
-
Dann hast du wohl nicht richtig kopiert oder so. In meinem Beispiel sind alle Klammern korrekt (drei gehen auf, drei werden wieder geschlossen).