hallooo,
das Programm soll später mittelwert, abweichung etc ausgeben.
mein problem ist, wenn ich die eingabe mit ctrl-d abbreche, wird auf die anzahl der Zahlen trotzdem noch einer drauf gezählt.
ist meine if-abfrage falsch??
#include
int main()
{
float zahlen[6]={0,0,0,0,0,0}, summe=0, mittelwert=0, abweichung=0;
int i=0, j=0,anzahl=0, ende=0;
printf('\nBitte geben Sie die Zahlen mit 2 Nachkommastellen an!');
while (ende!=EOF && i
_[MOD]:
-Tags hinzugefügt, in Zukunft bitte selbst machen._
Hi,
also was ich nicht ganz verstehe, woher denn nun dieses EOF kommt. Normalerweise wird dies doch genutzt, wenn man mit FILE* aus einer Datei liest, um eben das Ende selbiger anzuzeigen. Da du allem Anschein nach aber eben nicht aus einer Datei liest, ist diese Abfrage doch wahrscheinlich ohne Effekt oder? Falls ich da jetzt falsch liege könntest du mich ja aufklären, denn eigentlich habe ich mit C nix zu tun, sondern viel mehr mit C++.
das Programm soll später mittelwert, abweichung etc ausgeben.
mein problem ist, wenn ich die eingabe mit ctrl-d abbreche,
wird auf die anzahl der Zahlen trotzdem noch einer drauf
gezählt. ist meine if-abfrage falsch??
Ja, Du mußt genau schauen, wann Du die Schleife anhalten mußt
und wann Du den Zähler hochzählen mußt.
#include
int main()
{
float zahlen[6]={0,0,0,0,0,0}, summe=0, mittelwert=0,
…
Ich hab mal Deinen Quelltext minimal verändert - so, wie ich denke,
daß es richtig gehen müßte:
#include
int main()
{
double zahlen[]={ 0, 0, 0, 0, 0, 0 }, summe=0, r\_mean=0;
int i, ende=0, anzahl=0, N=sizeof(zahlen)/sizeof(zahlen[0]);
char puffer[25];
printf("\nBitte geben Sie die %d Zahlen mit je 2 Nachkommastellen an!\n", N);
setbuf(stdout, NULL);
while( ! ende && anzahl
Grüße
CMБ