Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
6
Cevap
777
Tıklama
0
Öne Çıkarma
Güzel Bir C Sorusu ... 2
G
15 yıl (237 mesaj)
Teğmen
Konu Sahibi

Merhabalar, arkadaşlardan biri güzel bilmece tarzı bir C sorusu koymuştu foruma benimde aklıma geldi ve forumu zenginleştirir diye düşşündüm,

int a = 0,b = 0;
int main(void)
{
printf("iki adet sayi gir : \n\r");
scanf("%d%d",&a,&b);

printf("1. sayi = %d... 2. sayi = %d",a,b);

swap(&a,&b); //bu fonksiyon kodlancak

printf("swap sonrasi 1. sayi = %d... 2. sayi = %d",a,b);

system("pause");

return 0;
}


void swap(int *, int *); prototipinde bir fonksiyon yazılcak fonksiyonun hiçinde kesinlikle bir değişken tanımlamadan a ve b değikenlerinin yerlerini bellekte swap edicek.

Örnek program Çıktısı.
------------------------------------------------
iki adet sayi gir :
5 4
1. sayi = 5 ... 2. sayi = 4
swap sonrasi 1. sayi = 4... 2. sayi = 5
------------------------------------------------

Kolay Gelsin...

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



H
15 yıl (470 mesaj)
Çavuş

void swap (int &a,int &b)
{
a=a+b
b=a-b
a=a-b
}

gibi bir sey olabilir compile etmedim ama olur gibi duruyor





< Bu mesaj bu kişi tarafından değiştirildi Hypersomniac -- 9 Şubat 2011; 3:11:46 >
Bu mesaja 1 cevap geldi.
R
15 yıl (227 mesaj)
Teğmen

şöyle de olabilir...

void swap (int *a, int *b) {
*a ^= *b;
*b ^= *a;
*a ^= *b;
}


Bu mesaja 1 cevap geldi.
G
15 yıl (237 mesaj)
Teğmen
Konu Sahibi

F
15 yıl (35 mesaj)
Onbaşı

void swap (int a,int b)
{
int gecici = 2;/*örnek yani başka sayı da olur.Sadece "0" ı sakıncalı görüyürum*/

a = gecici;
gecici = b;
b= a;
}
kodu derlemedim ama isterseniz bunu değişkenlerin adersleriyle de yapabilirsiniz.
void swap (int *a,int *b)
{
int *gecici;
*a = *gecici;
*gecici = *b;
*b = *a;
}

umarım bunlar yardımcı olur .Akşam bi daha bakarım


Bu mesaja 1 cevap geldi.
G
15 yıl (237 mesaj)
Teğmen
Konu Sahibi

quote:

Orijinalden alıntı: furkan59

void swap (int a,int b)
{
int gecici = 2;/*örnek yani başka sayı da olur.Sadece "0" ı sakıncalı görüyürum*/

a = gecici;
gecici = b;
b= a;
}
kodu derlemedim ama isterseniz bunu değişkenlerin adersleriyle de yapabilirsiniz.
void swap (int *a,int *b)
{
int *gecici;
*a = *gecici;
*gecici = *b;
*b = *a;
}

umarım bunlar yardımcı olur .Akşam bi daha bakarım


soruda "gecici" gibi herhangi bir lokal değişken tanımlanmayacak sadece parametre ile gelen değişkenleri kullanma hakkımız var yukarıda arakdaşların verdiği çözümler sonucu veriyor


Bu mesaja 1 cevap geldi.
F
15 yıl (35 mesaj)
Onbaşı

benim cevaplar yanlış mı oldu öylece biraz daha öğrenmek gerek demek



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.