Problem beim erstellen eines rechners

hallo,
ich sollte für die schule einige rechner erstellen…
und scheitere jetzt an einer einfachen „sqrt“ funktion.(Flächeninhalt und höhe eines Gleichseitigen Dreiecks.)
quell code:
__________________________
#include
#include
#include
using namespace std;
float a, F, U, h, h1;
int main(float sqrt)
{
float h;
float h1;
float U;
float F;//flächeninhalt
float a;

cout>a;

U=3*a;// richtig
F=;// habs weggelassen weil ich zuerst die höhe haben wollte
h1=sqrt(a*3);// error c2064
h=(h1)/2;

cout

Hallo Nishuthan,

in Zeile 6 definierst Du Deine Funktion mit:
int main(float sqrt)

Du Übergibst also Deiner Main funktion den float Wert „sqrt“. Weiter unten möchtest Du dann aber die „sqrt-Funktion“ aufrufen. Du hast aber diesen Namen bereits für den Funktionsparameter gewählt, so dass sqrt nun nicht mehr die Wurzelfunktion aufruft, sondern Deinen float Parameter referenziert.

Lösung:
Entweder du lässt den Parameter in Main weg (Zeile 6) oder Du benennst den Paramerer um.

Viele Grüße,
Thomas

Hi,
du hast den Parameter der main-funktion sqrt genannt. Das ist schlecht, weil die Funktion, die du verwenden willst, auch sqrt heißt. Das kann der Compiler nicht auflösen. Benenne den Funktionsparameter anders (falls du ihn überhaupt brauchst).

Grüße
markus

danke
zeile 6 floatsqrt entfernt

h1=sqrt(a*3.0) (int wert mit float wert ersetzt)
Funkt jetzt.
quellcode für die nachwelt falls es noch wer brauchen
sollt:

#include „stdafx.h“
#include
#include
using namespace std;
float a, F, f1, U, h, h1;
int main()
{
float h;
float h1;
float U;
float F;
double f1;
float a;

cout>a;

U=3*a;// richtig
f1=sqrt(3.0);
F=((a*a)*f1)/4;
h1=sqrt(3.0);
h=(a*h1)/2;

cout

h1=sqrt(a*3);// error c2064

Klar dass das nicht geht, denn „sqrt“ ist ja schon durch das „float sqrt“ als Parameter der main() Funktion belegt. Warum auch immer du das da reingepackt hast, nimm es raus. Dann sollte es funktionieren (habe kein VisualC++, aber mit dem gcc lässt es sich dann übersetzen)