000
26.01.2014, 12:59 Uhr
surge
|
Hallo, ich möchte bei folgendem Programm die Funktion zur Summenberechnung auslagern (case 2):
C++: |
#include "iostream" using namespace std;
// Funktionsprototypen zur Summenberechnung int fsumme(int Feld[],int su);
void main () { int opt,i, su, Feld[90],el;
cout<<"Programm zum Arbeiten mit einer Zahlenfolge\n"; el=0; do { cout<<"Wieviele Zahlen moechten Sie eingeben?\n"; cin>>el; }while (el <0 || el>90);
for (int i=0;i<el;i++) { cout<<"Bitte Elemente Nr. "<<i<<" eingeben: "; cin>>Feld[i]; } do {
cout<<"\nBitte waehlen Sie aus:\n"; cout<<"1 - Zahlenfolge ausgeben\n2 - Summe aller Elemente der Folge berechnen und als letztes Element ausgeben\n"; cout<<"3 - Eine neue Startzahl (kleiner gleich null) festlegen\n5 - Das Programm beenden\n"; cin>>opt;
switch (opt) { case 1: cout<<"Folgende Zahlen sind gespeichert:\n"; // Gespeicherte Zahlenfolge ausgeben ohne Summe aller Elemente for ( i=0;i<el;i++) { cout<<"Element Nr."<<i<<" : "<<Feld[i]<<endl; } break; case 2: // Summe berechnen /* su=0; for (i=0;i<el;i++) { su += Feld[i]; } */ su=fsumme([i]); // Error: Es wurde ein "{" zur Einführung eines Lambda-Textes erwartet Feld[i]=su; // Summe aller Zahlen berechnen und als letztes Feldelement ausgeben el++; cout<<"Summe aller Zahlen im Feld: "<<Feld[i]; break; case 3: //Neue Startzahl for (i=el;i>0;i--) { Feld[i]=Feld[i-1]; } el++;
cout<<"Neue Startzahl?\n"; cin>>Feld[0]; break; case 4: cout<<"Neue Folge: \n"; // Neue Folge ausgeben for (i=0;i<el+1;i++) { cout<<"Element Nr."<<i<<" : "<<Feld[i]<<endl; } break; case 5: break; default: cout<<"Ungueltige Option!\n"; break; } } while (opt != 5);
int fsumme(int Feld[],int su, int el); { int su=0; for (int i=0;i<el;i++) { su += Feld[i]; } return su; // Error: Rückgabewert stimmt nicht mit Funktionswert überein } }
|
Die Fehlermeldungen habe ich als Kommentar eingefügt, weiß aber nicht so recht was ich machen soll |