Problem bei der ausgabe von einer float zahl!
-
Hallo!
Ich habe ein Problem bei der Ausgabe:float mw;
mw = (260 / 100) * anzahl[i]; /* anzahl[i] enthält int-zahlen, mw ist als float deklariert */ printf("%c\t\t%.2d\t\t%5.2f %%\n",i+'A',anzahl[i],mw);
so das ganze sieht dann so aus:
A 10 20.00 %so sollte es aussehen:
A 10 20.45 %ps: wenn ich anstatt %5.2f %5.2e verwende wird 20.40e+001 ausgegeben (es liegt also kein problem bei der berechnung vor sondern nur bei der ausgabe)
-
mach mal:
mw = (260.0 / 100.0) * anzahl[i]; // damit er den ausdruch als double handhabt /* anzahl[i] enthält int-zahlen, mw ist als float deklariert */ printf("%c\t\t%.2d\t\t%5.2f %%\n",i+'A',anzahl[i],mw);
-
geeeeeeeeeil!
danke!
ich hab da noch ne andere frage, und zwar steht es schon im faq aber es geht bei mir ned (das programm wartet am ende nicht sondern schliest sich einfach).
er kennt bei mir das Console.ReadLine(); ned, wieso?
-
du bist im falschen forum!
dein programm is C.das Console.ReadLine(); ist C#.
fuer C musst du:
fgetc( stdin ); (ist in der <stdio.h>)
verwenden.
-
also bei mir geht das ned! das prog schliest sich tortdem!
-
es kann sein, das noch zeichen im puffer stehen.
probier mal ne zeile einzulesen:char zeile[10]; fgets( zeile, 10, stdin );
das sollte gehen.
-
entelechie schrieb:
du bist im falschen forum!
dein programm is C.Stimmt, vielleicht kann ja ein Mod das verschieben.
entelechie schrieb:
das Console.ReadLine(); ist C#.
Jein. Das gibbet auch in C++.net, indem man den namespace System benutzt. Dann wird allerdings Console::ReadLine(); geschrieben.
Ist zwar nicht Thema, aber vielleicht kann mir jemand dies beantworten:
Es gibt da auch Console::Write(S"bla"); und ich frage mich jetzt0 wofür das S steht vor dem "bla". Ich sehe es öfter im Buch, aber oft auch ohne. Habe beides getestet konnte aber keinen Unterschied feststellen....eine Erklärung habe ich nicht gefunden.Code-Hacker