Mittelwert berechnen
-
Hallo,
Ich will das bei mir aus 10 Arrys ein Mittelwert ausgerechnen wird.
Leider meine Programm rechen falsch udn ich wieß nciht wo das Problemm ist.
Hir mein Cod#include<iostream> using namespace std; int main() { double zahl1[10]; int i; for (i = 1; i <= 10; i++) { cout << "Bitte Wert eingeben: " ; cin >> zahl1[i]; } double mittelwert = 0; for (i= 1; i<= 10; i++) { mittelwert += zahl1[i]; } cout << "Mittelwert: " << mittelwert/10.0 << endl; return 0; }
Danke
MFG Progress
-
du beginnst bei dem array 2mal bei 1 statt bei 0 und gehst auch noch eins zu weit
die array grenzen sind bei einem array mit n feldern: 0 -> n-1
-
int Array[10]; //Array befüllen std::cout << "Mittelwert: " << std::accumulate(Array, Array + 10, 0.0f) / 10.0f;
-
Die Array Indizes beginnen bei 0, nicht bei 1.
-
EOutOfResources schrieb:
int Array[10]; //Array befüllen std::cout << "Mittelwert: " << std::accumulate(Array, Array + 9, 0.0f) / 10.0f;
Bist du sicher, daß du nicht "Array+10" als Obergrenze meinst? Der End-Iterator zeigt traditionell hinter das letzte Element das betrachtet werden soll.
-
CStoll schrieb:
Bist du sicher, daß du nicht "Array+10" als Obergrenze meinst?
Ups, mein Fehler.
-
Ich beginne in for Schleife bei 1 weil wenn ich von 0-10 düch gehe sind es 11 schritte.
Das Feller ist das der falsch rechnet.
so siet es in Console aus.[nick@myhost ~]$ cd Desktop/ [nick@myhost Desktop]$ g++ neu.cpp [nick@myhost Desktop]$ ./a.out Bitte Wert eingeben: 5 Bitte Wert eingeben: 5 Bitte Wert eingeben: 5 Bitte Wert eingeben: 5 Bitte Wert eingeben: 5 Bitte Wert eingeben: 5 Bitte Wert eingeben: 5 Bitte Wert eingeben: 5 Bitte Wert eingeben: 5 Bitte Wert eingeben: 5 Bitte Wert eingeben: 5 Mittelwert: 10
-
Für ein Array der Grösse 10 sieht die Schleife so aus:
for(std::size_t i = 0; i < 10; i++)
-
10 ist kein legaler Index, deshalb wäre es korrekter, wenn du von 0 bis 9 gehst (bzw. bis "i<10"). In deiner Schleife überschreibst du im letzten Schleifendurchlauf einen Wert, der außerhalb deines Arrays liegt (von deinem Ergebnis zu urteilen könnte das "mittelwert" sein).
-
Problemm Gelöst
Danke sher allen an Ihre HilfeMFG Progress