Körpergrößen über Array einlesen
-
Ich soll in einem Programm 6 Körpergrößen einlesen lassen über ein Array mittels for schleife. Da hapert es irgendwie am Anstaz:
int groeße=0; cout << "Geben Sie die 6 Groessen ein: "; for(i=0;i<N;i++) { cin << groeße; array[i]=groeße; }
-
Es muss lauten cin >> groesse.
Die Pfeile sagen dir ziemlich schön dir Richtung. Bei cout << wird ein Wert an cout für die Ausgabe gegeben. Bei cin >> gibt cin einen Wert an die rechts stehende Variable.
-
Ach ja stimmt natürlich. Nun habe ich das Programm mit Zusatzprogrammne geschrieben, aber irgendwie habe ich die übelsten Fehlermeldung. Wisst ihr, was noch alles flasch ist?
#include <iostream> using namespace std; void mittelwert (float a, float b); void ausgabe (float a, float b, int array[]); int main() { const int N=6; int werte[N]={0}; int a=0; int b=0; int mid=0; cout << "Geben Sie die 6 Groessen ein: "; for(i=0;i<N;i++) { cin >> groeße; array[i]=groeße; } mittelwert (a,b); ausgabe (a,b,werte); return 0; } void mittelwert(int N, int array[], float &a, float &b) { for (int i=0;i<N;i++) { mid +=array[i]; } mid=mid/n; cout << endl << "Mittelwert aus " << a << " und " << b << ": " << mw << endl; return ; } void ausgabe (float a, float b, int array[]) { cout << "1. Eintrag der Groessen lautet: " << array[0] << endl; cout << "2. Eintrag der Groessen lautet: " << array[5] << endl; }
-
Da sind haufenweise Fehler drin. Ich hab mal ein par Kommentare reingeschrieben bei Fehlern, die mir gerade aufgefallen sind.
#include <iostream> using namespace std; void mittelwert (float a, float b); void ausgabe (float a, float b, int array[]); int main() { const int N=6; int werte[N]={0}; int a=0; int b=0; int mid=0; // Sollte wahrscheinlich ein double sein. Ist wohl sinvoller cout << "Geben Sie die 6 Groessen ein: "; for(i=0;i<N;i++) // Welchen Typ hat i? Du muss explizit einen Typ angeben in C++, also int i = 0 { cin >> groeße; // Wo ist das deklariert? Muss irgendwo deklariert werdne, z.B. double groesse; (Kein doppel s verwenden) array[i]=groeße; // array ist ein reserviertes Wort. Du musst werte[i] machen. Hast ja extra ein Array mit Bezeichner werte gemacht. } mittelwert (a,b); ausgabe (a,b,werte); return 0; } void mittelwert(int N, int array[], float &a, float &b) { for (int i=0;i<N;i++) { mid +=array[i]; // mid is hier nicht sichtbar, da es in main() deklariert wurde. Entweder mid als Argument übergeben oder mid ausserhalb der main deklarieren } mid=mid/n; // Hier selber Problem wie oben. Ausserdem aufpassen mit Integerdivision. Mid sollte wohl eher double sein cout << endl << "Mittelwert aus " << a << " und " << b << ": " << mw << endl; return ; // Brauchst du nicht zu schreiben, is redundant } void ausgabe (float a, float b, int array[]) // Hier auch wieder das gleiche Problem. Nicht array als Bezeichner wählen, das ist ein reserviertes Wort { cout << "1. Eintrag der Groessen lautet: " << array[0] << endl; // Sind das denn wirklich die grössten? Nur wenn das Array sortiert ist. cout << "2. Eintrag der Groessen lautet: " << array[5] << endl; }Ich weiss nicht ob das alle sind. Aber versuch ersmal die wegzubekommen.
-
array[i]=groeße;
so klappt das nicht
du musst den array zuerst defineren
int arrayname[size];
und dann kannst du mit arrayname[i]= groeße darauf zugreifen
-
lekos schrieb:
array[i]=groeße;
so klappt das nicht
du musst den array zuerst defineren
int arrayname[size];
und dann kannst du mit arrayname[i]= groeße darauf zugreifen
Hat er auch gemacht. Das Array heisst bei ihm werte. Nur braucht er es nicht.
-
icarus2 schrieb:
Entweder mid als Argument übergeben oder mid ausserhalb der main deklarieren
Du meinst sicherlich
midin der Funktionmittelwertdefinieren. Das ist der sinnvolle Weg.
-
Michael E. schrieb:
icarus2 schrieb:
Entweder mid als Argument übergeben oder mid ausserhalb der main deklarieren
Du meinst sicherlich
midin der Funktionmittelwertdefinieren. Das ist der sinnvolle Weg.Ja stimmt. Habe das falsch geschrieben.