#include <stdio.h> #include <stdlib.h> int ebobu_bulur(sayi1,sayi2) { int ortak_bolen; int bolen,buyuk_sayi; if(sayi1<sayi2) buyuk_sayi=sayi2; else buyuk_sayi=sayi1; for(bolen=1;bolen<=buyuk_sayi/2;bolen++) { if(sayi1%bolen==0&&sayi2%bolen==0) ortak_bolen=bolen; } printf("ebob: %d\n",ortak_bolen); return ortak_bolen; } int main() { int sayi1,sayi2,ortak_bolen; int ekok,ebob; printf("sayiyi giriniz\n"); scanf("%d",&sayi1); printf("ikinci sayiyi giriniz\n"); scanf("%d",&sayi2); ebobu_bulur(sayi1,sayi2); ebob=ortak_bolen; ekok=(sayi1*sayi2)/ebob; printf("%d\n",ekok); }
arkadaşlar problem şu ebobu bulan fonksiyon ebobu doğru buluyor ama return ortak_bolen ile ebobun değerini geri döndürmek istiyorum.kodu şöyle yazdığımda returnun bana verdiği değer yanlış oluyor. mesela 40 ve 32 sayilari için denedim ebobu buluyor 8 diye ekrana yazdırıyor ama return ortak_bolen ile ebobu almaya çalışınca bana 2 değerini geri veriyor dolayısıyla ekoku yanlıs hesaplıyorum.yardımcı olabilirseniz sevinirim.
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.
#include <stdio.h> #include <stdlib.h> int ebobu_bulur(sayi1,sayi2) { int ortak_bolen; int bolen,buyuk_sayi; if(sayi1<sayi2) buyuk_sayi=sayi2; else buyuk_sayi=sayi1; for(bolen=1;bolen<=buyuk_sayi/2;bolen++) { if(sayi1%bolen==0&&sayi2%bolen==0) ortak_bolen=bolen; }
return ortak_bolen; }
int main() { int sayi1,sayi2,ortak_bolen; int ekok,ebob; printf("sayiyi giriniz\n"); scanf("%d",&sayi1); printf("ikinci sayiyi giriniz\n"); scanf("%d",&sayi2); ebobu_bulur(sayi1,sayi2);
int main() { int sayi1,sayi2,ortak_bolen; int ekok,ebob; printf("sayiyi giriniz\n"); scanf("%d",&sayi1); printf("ikinci sayiyi giriniz\n"); scanf("%d",&sayi2); ebobu_bulur(sayi1,sayi2);
hocam senin çözümü anladım eyvallah.Benim sormak istediğim başka bir şey daha var ben fonksiyonlarla değişken geri dönüşümü yapabilirmiyim.mesela fonksiyonum return sayi1 yapiyor ben bu fonkiyonu main içerisinde çağırıp sayi1 değişkenini kullanabilirmiyim?
2 şekilde yapabilirsin. sayi1 i global ve ya static yerel olarak tanımlayıp, adresini geri döndürürsün.. Diğer seçenek fonksiyonun içinde sayi1 i dinamik bellek ile elde edip, adresini döndürürsün. Burdan anlaşılcak sonuç C de call by reference, adreslerle yapılır. Diğer yapılanlar nesnenin içeriğinin kopyasından ibarettir.(call by value)
if(sayi1%bolen==0&&sayi2%bolen==0) ortak_bolen=bolen; } //printf("ebob: %d\n",ortak_bolen); return ortak_bolen; } int main() { int sayi1,sayi2,ortak_bolen; int ekok,ebob;
#include <stdlib.h>
int ebobu_bulur(sayi1,sayi2)
{
int ortak_bolen;
int bolen,buyuk_sayi;
if(sayi1<sayi2)
buyuk_sayi=sayi2;
else
buyuk_sayi=sayi1;
for(bolen=1;bolen<=buyuk_sayi/2;bolen++)
{
if(sayi1%bolen==0&&sayi2%bolen==0)
ortak_bolen=bolen;
}
printf("ebob: %d\n",ortak_bolen);
return ortak_bolen;
}
int main()
{
int sayi1,sayi2,ortak_bolen;
int ekok,ebob;
printf("sayiyi giriniz\n");
scanf("%d",&sayi1);
printf("ikinci sayiyi giriniz\n");
scanf("%d",&sayi2);
ebobu_bulur(sayi1,sayi2);
ebob=ortak_bolen;
ekok=(sayi1*sayi2)/ebob;
printf("%d\n",ekok);
}
arkadaşlar problem şu
ebobu bulan fonksiyon ebobu doğru buluyor ama return ortak_bolen ile ebobun değerini geri döndürmek istiyorum.kodu şöyle yazdığımda returnun bana verdiği değer yanlış oluyor.
mesela 40 ve 32 sayilari için denedim ebobu buluyor 8 diye ekrana yazdırıyor ama return ortak_bolen ile ebobu almaya çalışınca bana 2 değerini geri veriyor dolayısıyla ekoku yanlıs hesaplıyorum.yardımcı olabilirseniz sevinirim.
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜ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.