C Bilenler !! Sqrt + Scanf Sorunu (2 Den Beri Uğraşıyorum)
-
Saat şimdi 6.50 .Sabah c ile uğraşıyordum ki , girilen sayının karekökünü alayım dedim.Demez olaydım.Saat 2 den beri bulmaya çalışıyorum.Googledan Türkçe, ingilizce aradım yok bulamıyorum kafayı yemek üzreyim . Buyrun kodlar ;
#include <stdio.h>
#include <math.h>
int main(){
double num,hop;
scanf("%lf",&num);
hop = sqrt(num);
printf("%f \n",hop);
return 0;
}------------------
Hata nedir ?? Anlayamadım ama sqrt kısmı problemli.
printf("%lf\n",sqrt(25));
yazdımı problem yok . Hata mesajı ;(netbeans kullanıyorum olduğu gibi veriyorum)
-------
/usr/bin/make -f nbproject/Makefile-Debug.mk SUBPROJECTS= .build-conf
make[1]: Entering directory `/home/ayrox/NetBeansProjects/deneme'
/usr/bin/make -f nbproject/Makefile-Debug.mk dist/Debug/GNU-Linux-x86/deneme
make[2]: Entering directory `/home/ayrox/NetBeansProjects/deneme'
mkdir -p dist/Debug/GNU-Linux-x86
gcc -o dist/Debug/GNU-Linux-x86/deneme build/Debug/GNU-Linux-x86/main.o
build/Debug/GNU-Linux-x86/main.o: In function `main':
/home/ayrox/NetBeansProjects/deneme/main.c:14: undefined reference to `sqrt'
collect2: ld returned 1 exit status
make[2]: *** [dist/Debug/GNU-Linux-x86/deneme] Error 1
make[2]: Leaving directory `/home/ayrox/NetBeansProjects/deneme'
make[1]: *** [.build-conf] Error 2
make[1]: Leaving directory `/home/ayrox/NetBeansProjects/deneme'
make: *** [.build-impl] Error 2
BUILD FAILED (exit value 2, total time: 100ms) -
Edit : Büyük abiler böyle demiş;
double sqrt ( double x );
float sqrt ( float x );
long double sqrt ( long double x );Compute square root
Returns the square root of x.
In C++, this function is overloaded in <complex> and <valarray> (see complex sqrt and valarray sqrt).
Parameters
- x
- Floating point value.
If the argument is negative, a domain error occurs, setting the global variable errno to the value EDOM.
Return Value
Square root of x.
Portability
In C, only the double version of this function exists with this name.
Example
1
2
3
4
5
6
7
8
9
10
11
12/* sqrt example */
#include <stdio.h>
#include <math.h>
int main ()
{
double param, result;
param = 1024.0;
result = sqrt (param);
printf ("sqrt(%lf) = %lf\n", param, result );
return 0;
}
Output:<>
sqrt(1024.000000) = 32.000000
> -
Hocam klavyeden girilen sayının karekökünü bulan programda, girdiğimiz sayının negatif yada pozitif olduğunu sorgulamamız gerekmiyormu ? Şunun gibi..
#include <stdio.h>
#include <math.h>
int main(){
double num,hop;
scanf("%lf",&num);
if(num < 0)
printf("Girilen Sayi Negatifdir ! Lutfen Pozitif Bir Sayi Giriniz.. ");
else{
hop = sqrt(num);
printf("%f \n",hop);
}
return 0;
} -
yok abi
/home/ayrox/NetBeansProjects/deneme/main.c:17: undefined reference to `sqrt'
hatası veriyor ısrarla
-
zumsuk verdiğin kodlarda sorun yok ben C-Free 4.0 kullanıyorum bunda denedim çalışıyor. sen sanırım c++ turbo kullanıyorsun ?
http://www.programarts.com/download/cfree4_0_std_setup.exe burdan indir C-Free 4.0'ı kodları yapıştır f5 e bas
Sorun yok

-
Bende C derleyici yoktu, şimdi C- Free ile baktım seninkilerde çalışıyo.. Java da bazı fonksiyonlarda "referance" istiyor ama C de sqrt için referasa gerek varmıki ?
Netbeans' de hangi projede yapıyosun hocam?

-
Hocam math kütüphanesinin yüklü olduğundan emin misin? sqrt yerine bi de fabs(25.0) yazip calistirmayi denesene.. Gene ayni lavuklugu yaparsa buyuk ihtimal kutuphaneden dolayi...
-
dediğim gibi c ile yapıyorum.C++ ı falan iptal ettim.Sanıyroum sqrt bulamıyor.math.h kütüphanesini tam açamıyor ama gcc ile yaptım yine aynı.
Linux üstünde başka bir çözümü var galba.
-
bunu dene
#include <stdio.h>
#include <conio.h>
double a,n2=32768,n=65536;
int k;
int main ()
{
scanf("%lf",&a);
for(k=0;k<40;++k){
if(a>n*n)
n+=n2;
else
n-=n2;
n2/=2;
}
printf("%.2f\n",n);
getch();
return 0;
}döngüyü artırdıkça hassasiyet artar.
-
conio.h yüklenemiyor
-----
int main(){
double num;
num=sqrt(25);
printf("%lf",num);
}----
yaptığımda çalışıyor problem yok alla alla.conio.h yüklemem lazım ama netbeansın yüklemesi gerekmez mi ?
-
zumsuk bunu yazdı:
-----------------------------
conio.h yüklenemiyor
-----
int main(){
double num;
num=sqrt(25);
printf("%lf",num);
}----
yaptığımda çalışıyor problem yok alla alla.conio.h yüklemem lazım ama netbeansın yüklemesi gerekmez mi ?
-----------------------------zumsuk dostum, math.h kutuphanesiyle birlikte derleme yapiyorsan gcc -Wall kodun.c /usr/lib/libm.a -o cikti.out
yani matematik librarysi ile birlikte derlemen gerekiyor. Kolay komutu ise
gcc deneme1.c -lm -o deneme1
