• Web sitemizin içeriğine ve tüm hizmetlerimize erişim sağlamak için Web sitemize kayıt olmalı ya da giriş yapmalısınız. Web sitemize üye olmak tamamen ücretsizdir.
  • Sohbetokey.com ile canlı okey oynamaya ne dersin? Hem sohbet et, hem mobil okey oyna!
  • Soru mu? Sorun mu? ''Bir Sorum Var?'' sistemimiz aktiftir. Paylaşın beraber çözüm üretelim.
Bu, hızlı yüklenen mobil optimize edilmiş bir AMP sayfadır, gerçek sayfayı yüklemek istiyorsanız bu metni tıklayın.

Ondalıklı Sayıyı Kesre Dönüştürme

Üyelik Tarihi
7 Ocak 2015
Konular
4,091
Mesajlar
4,274
MFC Puanı
40
Kod:
//Ondalıklı sayıyı kesre dönüştürme
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int obeb(int,int);
int main()
{
   int a,b,t;double us,c;
    printf("Bir ondalikli sayi giriniz\n");
    scanf("%lf",&c);
    //tam kısımda 3 basamak için
    if(c>100&&c<1000)
    {
    us=pow(10,5);
    a=c*us;b=us;
    }
    //tam kısımda 2 basamak için
    else if(c>1)
    {
    us=pow(10,7);
    a=c*us;b=us;
    }
    //0 ile 1 aralığındaki ondalıklı sayılar için
    else{
    us=pow(10,9);
    a=c*us;b=us;
    }
    if(a%10==9)
    a++;/*Bazı ondalıklı sayıları çevirirken sonu 9 devrediyor şeklinde çevirdiği için
    bu ifadeyi ekledik.Mesela bu ifade olmadığı durumda 0.12 ifadesini 119999999/100000000
    şeklinde çeviriyor.*/
    t=obeb(a,b);
    printf("%f=%d/%d\n\n",c,a/t,b/t);
  system("pause");
    return 0;
}
int obeb(int a,int b)
{
    int obeb=1,i=2;
    while(!(a==1||b==1))
    {
       while(a%i==0||b%i==0)
       {
       if(a%i==0&&b%i==0)
       {
       a/=i;
       b/=i;
       obeb*=i;
       }
       else if(a%i==0)
       a/=i;
       else if(b%i==0)
       b/=i;
       }//ikinci while ın sonu
       (i%2)?i+=2:i++;/*i%2 değeri 1 olduğunda i nin 2 artması
       i%2 değeri 0 olduğunda i nin 1 artması için*/
    }//birinci while ın sonu
    return obeb;
}