• 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.

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;
}
 
Üst