Arama butonu
Bu konudaki kullanıcılar: 1 misafir
11
Cevap
3802
Tıklama
0
Öne Çıkarma
C++ La Ebob Bulma
H
13 yıl
Teğmen
Konu Sahibi

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

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil





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

G
13 yıl
Yüzbaşı

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 >
Bu mesaja 1 cevap geldi.
H
13 yıl
Teğmen
Konu Sahibi

G
13 yıl
Yüzbaşı

 
#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;
}


Bu mesaja 1 cevap geldi.
H
13 yıl
Teğmen
Konu Sahibi

unsigned tam olarak ne oluyor daha kitapta bunu öğretmedide.


Bu mesaja 1 cevap geldi.
G
13 yıl
Yüzbaşı

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 >
Bu mesaja 1 cevap geldi.
H
13 yıl
Teğmen
Konu Sahibi

tmm kod için saol süper olmuş.


Bu mesaja 1 cevap geldi.
G
13 yıl
Yüzbaşı

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.


Bu mesaja 1 cevap geldi.
H
13 yıl
Teğmen
Konu Sahibi

Kodlar için çok teşekkür ederim.


Bu mesaja 1 cevap geldi.
H
13 yıl
Teğmen
Konu Sahibi

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;





}


Bu mesaja 1 cevap geldi.
C
11 yıl
Yarbay

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.


Bu mesaja 1 cevap geldi.
K
11 yıl
Yüzbaşı

DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.