Wuzel ziehen funktioniert nicht!

fireflyhope

Mitglied
Mein vater hat mir gesagt um eine wurzel zuziehen muss ich das schreiben:

Code:
int vari;
vari = sqr(4);
so nun müsste er eigentlich den wert 2 ausgeben, er bringt aber einen fehler das er den befehl auch mit argument bezogenersuche nicht findn konnte :(
 
Hast du auch die Header Datei math.h eingebunden?
Falls es dann noch nicht funktioniert, kannst du mal versuchen, den Parameter von sqrt in double zu casten.

Eventuell musst du auch die mathlib mitlinken, bei gcc geht das .z.B mit der Option -lm.

Bei mir wird dein Code jedenfalls fehlerfrei uebersetzt. (mit math.h)


Edit: Ups :)
Siehe reima's Antwort.
 
Zuletzt bearbeitet von einem Moderator:
Ne geht nicht, mein Code sieht jetzt so aus:

Code:
#include "stdafx.h"
#include "math.h"

int _tmain(int argc, _TCHAR* argv[])
{
                     int vari;
	vari = sqrt(4);
	printf("lala = %d\n", vari);
	return 0;
}

fehler:
Code:
c:\Dokumente und Einstellungen\Vincent\Eigene Dateien\Visual Studio Projects\linearefunc\linearefunc.cpp(23): error C2668: 'sqrt': Mehrdeutiger Aufruf einer überladenen Funktion
 
Versuchs so:
Code:
int Quadrat = 4;
int vari = sqrt(Quadrat);
oder so
Code:
int vari = sqrt(4.00);

und noch ein tipp am rande: nutz statt int ein double oder float
 
ja mit dem 4.00 geht es jetzt, ich habe nur ein problem jetzt, ich mache ein programm das strecken im koordinaten system ausrechnen kann, so, ach ich poste meinen code(er net da die variable erge nicht ".00" hintendran hat

Code:
#include "stdafx.h"
#include "func.h"
#include "math.h"

int _tmain(int argc, _TCHAR* argv[])
{
	int p1x = 5;
	int p1y = 5;
	int p2x = 4;
	int p2y = 3;
	int erge;
	int erge1;
	int a1;
	int a2;
	a1 = p1x - p2x;
	a1 = a1 * a1;
	a2 = p1y - p2y;
	a2 = a2 * a2;
	erge = a1 + a2;
	erge1 = sqrt(erge);
	printf("lala = %d\n", erge1);
    wait();
	return 0;
}
 
Bin ja selbst n n4p in C, aber kannst du aus dem int erge nicht einfach ein double erge machen?
 
Zuletzt bearbeitet:
Natürlich!

Leute, die sqrt Funktion gibt Euch einen double zurück und keinen int!

einfach so:

Code:
double a=9.0;
double b=sqrt(a);

Wenn ihr dass dann lieber als int ausgeben wollt:
Code:
int c=rint(b);
 
Original geschrieben von Thomas Kuse
Natürlich!

Leute, die sqrt Funktion gibt Euch einen double zurück und keinen int!

einfach so:

Code:
double a=9.0;
double b=sqrt(a);


Wenn ihr dass dann lieber als int ausgeben wollt:
Code:
int c=rint(b);

Wenn dann so:
int x= static_cast<int>((sqrt(a))+0.5)


Damit die Rundung auch korrekt gerundet wird.;)
 
Zurück