Şimdi Ara

C++ La Ebob Bulma

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
3 Misafir - 3 Masaüstü
5 sn
12
Cevap
0
Favori
3.660
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Arkadaşlar çalıştığım kitapda c++ la bir yardımcı fonksiyon ile verilen 2 sayının ebobunu bulmamı istiyor.Ben genel olarak bişey yazdım ama yanlış oldu sanırım nerde hata yaptım bi incelermisiniz.
    eb=sayıların ebobu.

    #include <iostream>

    using namespace std;

    int ebob() {

    int x,y,eb=1,i=2;

    cout << "Ebob u alinacak sayilari giriniz : ";
    cin >> x >> y;

    if(x>y){
    while(i==y){
    if(x%i==0 && y%i==0){
    x=x/2;
    y=y/2;
    eb=eb*i;
    i++;
    }
    else {
    i++; }
    }

    }
    else {
    while(i==x){
    if(x%i==0 && y%i==0){
    x=x/2;
    y=y/2;
    eb=eb*i;
    i++;
    }
    else {
    i++; }
    }

    }
    cout << eb ;
    }
    main(){



    cout << "Ebob: " << ebob();




    system("PAUSE");
    return 0;
    }



    < Bu mesaj bu kişi tarafından değiştirildi Hunterangel -- 1 Kasım 2012; 12:02:29 >







  • Birden cok hata var. Istersen biraz daha bak 'while(i==y)' kismina 'eb=eb*i; } else { i++; }' seklindeki kisma. Mantik hatalari mevcut. Burasi zaten bana garip geldi 'cout << "Ebob: " << ebob(); ' Ebobu tersten de yapabilirsin bu arada. Kucukten buyuge gitmek istemissin ama kod su halde biryere gitmez. Iki sayidan kucuk olandan asagi doru inmeyi de deniyebilirsin. Istersen ornek bi kod veriyim, hem cikmali hem inmeli. Senin koddaki kucuk hatalari duzeltirken bastan yazmis gibi oldum da.



    < Bu mesaj bu kişi tarafından değiştirildi garui -- 1 Kasım 2012; 12:45:16 >
  • yazsan süper olur :D
  •  
    #include <iostream>

    using namespace std;

    int ebob(unsigned int x,unsigned int y)
    {
    int i=(x>=y?y:x);

    while (i>=1)
    {
    if (x%i==0 && y%i==0)
    break;
    i--;
    }
    return i;
    }

    int main()
    {

    unsigned int a,b;
    cout << "Ebob u alinacak sayilari giriniz : ";
    cin >> a >> b;

    cout << "Ebob: " << ebob(a,b) << endl;

    system("PAUSE");
    return 0;
    }


    #include <iostream> 

    using namespace std;

    int ebob(unsigned int x,unsigned int y)
    {
    int result=0,i=1,ch=(x>=y?y:x);

    while (i<=ch)
    {
    if (x%i==0 && y%i==0)
    result=i;
    i++;
    }
    return result;
    }

    int main()
    {

    unsigned int a,b;
    cout << "Ebob u alinacak sayilari giriniz : ";
    cin >> a >> b;

    cout << "Ebob: " << ebob(a,b) << endl;

    system("PAUSE");
    return 0;
    }




  • unsigned tam olarak ne oluyor daha kitapta bunu öğretmedide.
  • Yazmasi zor geldi :) negatif ve pozitiflik ile alakali diyim.



    < Bu mesaj bu kişi tarafından değiştirildi garui -- 1 Kasım 2012; 13:33:26 >
  • tmm kod için saol süper olmuş.
  • Bu da bulunsun. pozitif istedik sayilari ama kontrol etmedik.

    unsigned int a,b;
    cout << "Ebob'u alinacak sayilari giriniz : ";
    cin >> a >> b;
    if(cin.fail()) { cout << "Hoop! Pozifit sayi isterim." << endl; return 1;}

    boyle kontrol edebilirsin.
  • Kodlar için çok teşekkür ederim.
  • Garui nin ebobdaki yardımı sayesinde ekokun algoritmasınıda çözmem zor olmadı ekokla ilgili sorusu olanlara yardım amaçlı yazdığım kodu paylaşmak istiyorum.

    #include <iostream>

    using namespace std;

    int ekok(int a,int b) {
    int i=(a>b ? a:b),ek=1,c=2;

    while(c<i) {

    if(a%c==0 && b%c==0) {
    a=a/c;
    b=b/c;

    ek=ek*c; }

    else if(a%c!=0 && b%c==0) {
    b=b/c;
    ek=ek*c; }

    else if(a%c==0 && b%c!=0) {
    a=a/c;
    ek=ek*c; }

    c++; }


    return ek;






    }

    int main() {

    int x,y;

    cout << "Ekoku Alinacak sayilari giriniz : " ;
    cin >> x >> y;

    cout << "Ekok: " << ekok(x,y);



    system("PAUSE");
    return 0;





    }




  • Ebob bulma sormuşlar bize ya böyle saçma birşey olur mu arkadaş?Fonksiyon dahi öğretmediler bize nasıl bulacağız yani ebob ekok ya.
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.