[Çözüldü] Floating point exception (core dumped)

Başlatan Mtntk, 01 Ağustos 2012 - 16:38:25

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

Mtntk

Kusuruma bakmayın daha hala yeni ve öğrenmekte olduğum için böyle hatalar yapabiliyorum.. Sanırım hatayı veren yer harmonic fonksiyonunun 3. for döngüsü.
#include <stdio.h>

void harmonic(int n)
{
float sum;
int num,denum,i;
for(sum=0, i=1;i<=n;i++)
{
sum += 1/i;
}
num = sum * 1000000;
denum = 1000000;
while (num%10 == 0)
{
num /= 10;
denum /=10;
}
for(i=num/2;num%i ==0 && denum%i==0;i--) ;
num /= i;
denum /= i;
printf("number is %d / %d",num ,denum);
}
int main(void)
{
void harmonic(int);
int n;
printf("Give the number\n");
scanf("%d",&n);
harmonic(n);
return 0;
}


Bir süre sonra kodu tamamen silip baştan yazmaya karar verdim ve programı alttaki gibi yazınca doğru çalışmaya başladı.

#include <stdio.h>

void harmonic(int n)
{
void thing(float);
float sum,i;
for(sum=0, i=1;i<=n;i++)
{
sum += 1/i;
}
thing(sum);
}
void thing(float sum)
{
int num,denum,i,big;
num = sum * 1000000;
denum = 1000000;
while (num%10 == 0)
{
num /= 10;
denum /=10;
}
for(i=big=1;i<=(num/2);i++)
{
if(num%i ==0 && denum%i==0&&i>big) big = i;
}
num /= big;
denum /= big;
printf("number is %d / %d",num ,denum);
}
int main(void)
{
void harmonic(int);
int n;
printf("Give the number\n");
scanf("%d",&n);
harmonic(n);
return 0;
}


Daha sonra tekrar bakarken yazdığım ilk koda, yazdığım programla yazmaya çalıştığım program arasında baya fark olduğunu gördüm.. Hala ilk programda hatanın tam olarak nerden ya da neden çıktığının farkında değilim ama 3. fordan sonra bi sorun olduğu kesin..

if

@Mtntk, hatalı kodu ve nasıl düzenlediğinizi geçerseniz makbule geçer.

sem

Başlık ve içerik forum kurallarına aykırı ve biçimsiz duruyor gerçekten. Böyle durumlara dikkat etmek lazım. Aynı hatayı alan bir kişi için bu başlığa girmek zaman kaybından başka bir şey değil şu hali ile.
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

heartsmagic

@Mtntk, lütfen iletilerini düzelterek içlerini boşaltma. Yeni bir ileti ile sorunu nasıl aştığını aktar.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

Mtntk

İlk iletiyi düzelttim hatalı ve düzeltilmiş kodları koydum ama hala sorunun nasıl ya da neden çıktığı benim için bir bilinmeyen

if

@Mtntk, teşekkürler. Bir bilen elbette cevap verecektir.

burk

@Mtntk başlığı neden çözüldü olarak işaretlediniz?