bir ödev için math.h fonksiyonunu kullanmadan c dilinde kök alma fonksiyonu yazmam lazım. benim yazdığım program 1'den büyük sayılar için güzel çalışıyor ama sinüs,cosinüs hesabı da olacağından bana 0 ve 1 arasında da çalışması lazım. ancak bu program orda hata veriyor. nasıl düzeltebilirim?
not: arkadaşlar bu programı başka bir programın içinde fonksiyon olarak kullanacağım. ordan gelecek değişken float türünde olacak. yani kökü alınacak sayı float tipinde olmalı, geri kalan değişkenler herhangi bir tipte olabilir.
şimdiden teşekkür ederim.
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.
// tert kok alma islemini yapar. Kodun orjinalini bozmamak icin yeni bir fonksiyon yazdim asagida. // 1 / sqrt(f) islemini yapar. float Q_rsqrt( float number ) { long i; float x2, y; const float threehalfs = 1.5F;
x2 = number * 0.5F; y = number; i = * ( long * ) &y; // evil floating point bit level hacking i = 0x5f3759df - ( i >> 1 ); // what the fuck? y = * ( float * ) &i; y = y * ( threehalfs - ( x2 * y * y ) ); // 1st iteration // y = y * ( threehalfs - ( x2 * y * y ) ); // 2nd iteration, this can be removed
#include<stdio.h>
#include<conio.h>
int main()
{
double i,j;
float num;
j=0.000001;
printf("number : ");
scanf("%f",&num);
for(i=0;i<num;i=i+j)
{
if((i*i)>=num)
{
i=i-j;
break;
}
}
printf("%.5f",i);
getch();
return 0;
}
not: arkadaşlar bu programı başka bir programın içinde fonksiyon olarak kullanacağım. ordan gelecek değişken float türünde olacak. yani kökü alınacak sayı float tipinde olmalı, geri kalan değişkenler herhangi bir tipte olabilir.
şimdiden teşekkür ederim.
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.
< Bu mesaj bu kişi tarafından değiştirildi deneyici23 -- 30 Ekim 2014; 12:48:27 >