potenzieren
-
ok ich habs mir ma angeguckt aber es scheint nicht zu gehen. hier mal mein code:
#include<iostream> #include<string> #include<cmath> using namespace std; int power(int x, int y) { double ergebnis; if(y<0) { ergebnis=x/y; } ergebnis=pow(x,y); return ergebnis; } int main() { int a; int b; cout<<"Geben sie die erste Zahl ein\n"<<endl; cin>> a; cout<<"Geben sie die zweite Zahl ein\n"<<endl; cin>>b; cout<<"Das Ergenis lautet: "<<power(a,b)<<" . \n"<<endl; system("Pause"); }jetzt kommen immer wieder fehlermeldungen in der zeile mit pow.erstma davon abgesehen das da ein paar fehler drinne sind, geht das mit dem pow net?
-
Firefighter schrieb:
jetzt kommen immer wieder fehlermeldungen in der zeile mit pow.erstma davon abgesehen das da ein paar fehler drinne sind, geht das mit dem pow net?
Doch das mit pow geht. Was du falsch macht, sagt dir dein Compiler. Ich wuerd dir ja gern naeher bescheid geben, aber wenn du uns die Fehlermeldungen nicht sagen willst, musst du schon selber rausfinden, was falsch ist.

-
also folgende fehler
C:\Dokumente und Einstellungen\christopher\Desktop\Programme\C++\test.cpp In function
int power(int, int)': 12 C:\\Dokumente und Einstellungen\\christopher\\Desktop\\Programme\\C++\\test.cpp call of overloadedpow(int&, int&)' is ambiguous
note C:\Dev-Cpp\include\math.h:150 candidates are: double pow(double, double)
note C:\Dev-Cpp\include\math.h:150 long double std::pow(long double, int)
.
.
.
-
Die Fehler sind doch recht eindeutig beschrieben? pow() erwartet double + double oder double + int, casts könnten also hilfreich sein. Alternativ direkt Fließkommazahlen verwenden.
-
ok danke damit hat es sich erklärt
-
#include<iostream> #include<string> #include<cmath> using namespace std; int main() { int a; int b; cout<<"Geben sie die erste Zahl ein\n"<<endl; cin>> a; cout<<"Geben sie die zweite Zahl ein\n"<<endl; cin>>b; cout<<"Das Ergenis lautet: "<<pow(static_cast< long double >(a),b)<<" . \n"<<endl; system("pause"); // <--DAS ist nicht schön }Warum du dir extra eine Funktion schreiben willst verstehe ich nicht ganz.
EDIT: zu spät...
Gruß
Don06
-
Dieser Thread wurde von Moderator/in rüdiger aus dem Forum Rund um die Programmierung in das Forum C++ verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
ich habe mir extra eine funktion geschrieben um es mir selber beizubringen wie es geht, und was würdest du empfehlen wie das mit "Systm("Pause")" machen sollte?
-
void wait() { fflush( stdin ); // standart-input (stdin) löschen std::cin.get(); // warten auf <enter> }...so zum beispiel kann man das machen. er löscht alles, was noch im eingabepuffer ist und wartet auf <enter>. wenn du noch ne ausgabe wie "bitte drücken sie enter um fortzufahren" o.ä., musst du das einfach mit cout davor machen (könnte man auch in die funktion einbauen)..
//edit: besser?
// edit2: dazu steht auch was in der konsolen-faq, ich glaub irgendwas mit "automatisches schliessen verhindern" o.ä.mfg,
julian
-
und kannste auch dazu erklären was die begriffe heißen?
-
lies am besten das:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-111042.html
Ich glaube mit fflush(stdin) kann auch mal was schiefgehen.Gruß
Don06
-
Firefighter schrieb:
und was würdest du empfehlen wie das mit "Systm("Pause")" machen sollte?
cin.clear(); cin.ignore(cin.rdbuf()->in_avail()); cin.get();
-
Aus der Konsole aufrufen ist IMHO noch immer die beste Lösung für das Problem
-
darthdespotism schrieb:
Aus der Konsole aufrufen ist IMHO noch immer die beste Lösung für das Problem
Klar. Aber wenn man z.B. aus Visual Studio heraus debugt, ist ein Workaround IMHO die einzige Lösung.