Fonksiyon kullanarak obeb okek

sinasitopukkıran
25-05-2020, 00:45   |  #1  
sinasitopukkıran avatarı
OP Taze Üye
Teşekkür Sayısı: 0
1 mesaj
Kayıt Tarihi:Kayıt: May 2020

c++ öğrenmeye başladım fakat aşağıdaki koddaki hatanın ne olduğunu anlamadım. fonksiyon kullanmadan yapmakta problem yok ama kullanmam lazım. (düzeltmeye çalışırken daha beter yapmış olabilirim

#include <stdio.h>
void obeb (int sayi1, int sayi2, int obeb, int i)
{
                for (i=1; i <= sayi1 && i <= sayi2; ++i)
                if(sayi1%i==0 && sayi2%i==0)
                  obeb = i;
}
void okek (int sayi1,int sayi2,int okek,int obeb)
{
        okek=(sayi1*sayi2)/obeb;
}
int main ()
{
        int sayi1, sayi2, i, obeb;
        printf("2 sayi giriniz \n");
        scanf("%d %d",&sayi1, &sayi2);
       
        obeb (sayi1,sayi2,obeb,i);
        printf("OBEB= %d \n",obeb);
       
        okek (sayi1,sayi2,okek,obeb);
        printf("OKEK = %d \n",okek);
       
        return 0;
}

White-Fox
25-05-2020, 11:17   |  #2  
White-Fox avatarı
Yıllanmış Üye
Teşekkür Sayısı: 155
1,103 mesaj
Kayıt Tarihi:Kayıt: Eyl 2010

int gcd(int a, int b) {
   if (b == 0)
      return a;
   return gcd(b, a % b);  
}

int lcm(int a, int b)
{
    return (a * b) / gcd(a, b);
}

int main(int argc, char** argv) {
       
   int a = 105, b = 30;
   printf("%d\n",gcd(a,b));//en büyük ortak bölen
   printf("%d",lcm(a,b));//ortak katların en küçüğü
   

   return 0;
}