EOF (End of File)
Von: , Frage gestellt am Mo, 10. Mär 2008
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 <stdio.h>
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<6)
{
i++;
printf('\nZahl %i: ', i);
ende=scanf('%f', &zahlen[j]);
if(ende!=EOF)
{
anzahl++;
summe+=zahlen[j];
j++;
}
}
printf('\nAnzahl der eingelesenen Werte: %i', i);
printf('\nAusgabe der eingelesenen Zahlenfolge\n');
for(i=0;i<anzahl;i++)
{
printf('%6.2f ', zahlen[i]);
}
mittelwert=summe/anzahl;
printf('\nDer Mittelwert betraegt: %f', mittelwert);
printf('\n\n Wert Abweichung\n==========================');
for(i=0;i<anzahl;i++)
{
abweichung=zahlen[i]-mittelwert;
printf('\n %f %f', zahlen[i], abweichung);
}
}
[MOD]: <pre>-Tags hinzugefügt, in Zukunft bitte selbst machen.
