error C2064: Ausdruck ergibt keine Funktion, die 2 Argumente übernimmt
-
Massiv schrieb:
also ich hab net viel ahnung aber ich denke ich wies es
versuchs mal mit prototypen schreib mal über main die prototypen also
float volumen(float,float);
float hoehe(float,float);oder schreib die funktionen alle über main
hi
danke,aber es funktioniert leider noch immer nicht,der selbe Fehler
Aber trodzdem echt vielmals Danke
-
du hast imn quelltext int eingabe und diese benutzt du mit eine switch case anweisung
wo tippt man im quelltext eingabe ein???will nur helfen ich kenn nur c sry also wenn das im code drin steht aber das ist doch cin und ich seh nix mit cin und eingabe
-
Sorry für die Störung, ich weiß das passt jetzt nicht zum Thema, aba ich bin voll am verzweifeln:
Ich hab ein kleines Programm geschrieben, dass einige Checks durchführt,wie z.B. "Ping".
Nun möchte ich aber die Antwort aus der Shell wieder einlesen und komm auf keinen Nenner. Ich könnt mir denken, dass dies nicht so schwer ist, doch für einen so blutigen Anfänger wie mich
Wäre echt dankbar für eure Hilfe
-
auf welche zeile bezieht sich denn fehlermeldung?
\edit:Pinu schrieb:
Sorry für die Störung, ich weiß das passt jetzt nicht zum Thema, aba ich bin voll am verzweifeln:
Ich hab ein kleines Programm geschrieben, dass einige Checks durchführt,wie z.B. "Ping".
Nun möchte ich aber die Antwort aus der Shell wieder einlesen und komm auf keinen Nenner. Ich könnt mir denken, dass dies nicht so schwer ist, doch für einen so blutigen Anfänger wie mich
Wäre echt dankbar für eure Hilfehallo? wer bist du denn überhaupt??
-
Karsten
-
Habt ihr ne Idee? Muss die Antwort nämlich an ein anderes Programm übergeben, funzt nur leider nicht
-
achso, dacht ich's mir doch, natürlich, "_der_ karsten" wer denn sonst^^
\edit: wtf, was geht hier überhaupt ab...
\edit2: kann ein moderator die letzten vier beiträge bitte löschen, der karsten hatte wohl ein paar probleme damit, einen neuen thread zu eröffnen...
-
[quote="Andrey"]auf welche zeile bezieht sich denn fehlermeldung?
quote]Zeile 39 und 41,also:
Zeile 39:
volumen(grundflaeche, hoehe);
und Zeile 41:
hoehe(grundflaeche, volumen);
mfg
-
Cha, ich habs.
Du legst eine Variable volumen an. Diese verdeckt die Funktion volumen.
Nenne deine Funktionen irgendwie berechneVolumen, berechneHoehe.Gruß
Don06
-
Don06 schrieb:
Cha, ich habs.
Du legst eine Variable volumen an. Diese verdeckt die Funktion volumen.
Nenne deine Funktionen irgendwie berechneVolumen, berechneHoehe.Gruß
Don06Danke, es hat geklappt, danke danke und nochmals danke
mfg
-
Übrigens:
Du scheints die breaks in der switch case Anweisung vergessen zu habenswitch(var) { case 1: // tue irgendtwas break; <-- wichtig case 2: // fehlt das break; bei case 1: wird auch das hier ausgeführt break; }
Fehlt das "break;" am Ende wird die nachfolgende Anweisung auch noch ausgeführt.
@Offtopic: Lernt ihr sowas in der Schule? (Hausübung?)
Irgendwie ist das ein zu guter Programmierstil für einen Schüler.
Naja.Gruß
Don06
-
Entschuldigung @Andrey
Wusste mir nicht anders zu helfen
-
Warum übergibst du eigentlich Werte an deine Funktionen? So wie du das handhabst, ist das ziemlich überflüssig.
int main() { int eingabe; float grundflaeche = 2, hoehe = 6, volumen = 3; std::cout<<"1. Volumen berechnen"<<std::endl<<"2. Hoehe berechnen"<<std::endl; switch(eingabe) { case 1: volumen(grundflaeche, hoehe); //hier und case 2: hoehe(grundflaeche, volumen); //hier übergibst du Werte an die Funktionen default: std::cout<<"Falsche eingabe."<<std::endl; } return 0; } float volumen(float grundflaeche, float hoehe) { std::cout<<"Grundflaeche: "; std::cin>>grundflaeche; //und hier std::cout<<"\n"<<"Hoehe: "; std::cin>>hoehe; //und hier überschreibst du die übergebenen Werte std::cout<<"\n"; float summe = (grundflaeche * hoehe) / 3; std::cout<<"Volumen: "; std::cout<<summe; return summe; } float hoehe(float grundflaeche, float volumen) { std::cout<<"Grundflaeche: "; std::cin>>grundflaeche; //hier und std::cout<<"\n"<<"volumen: "; std::cin>>volumen; //hier genauso std::cout<<"\n"; float summe = (volumen * 3) / grundflaeche; std::cout<<"Hoehe: "<<summe; return summe; }
Da kannst du auch einfach folgendes machen:
int main() { int eingabe; std::cout<<"1. Volumen berechnen"<<std::endl<<"2. Hoehe berechnen"<<std::endl; switch(eingabe) { case 1: volumen(); case 2: hoehe(); default: std::cout<<"Falsche eingabe."<<std::endl; } return 0; } float volumen() { float grundflaeche; float hoehe; std::cout<<"Grundflaeche: "; std::cin>>grundflaeche; std::cout<<"\n"<<"Hoehe: "; std::cin>>hoehe; std::cout<<"\n"; float summe = (grundflaeche * hoehe) / 3; std::cout<<"Volumen: "; std::cout<<summe; return summe; } float hoehe() { float grundflaeche; float volumen; std::cout<<"Grundflaeche: "; std::cin>>grundflaeche; std::cout<<"\n"<<"volumen: "; std::cin>>volumen; std::cout<<"\n"; float summe = (volumen * 3) / grundflaeche; std::cout<<"Hoehe: "<<summe; return summe; }
Außerdem ignorierst du Rückgabewerte. Gewöhn dir das gar nicht erst an