Şimdi Ara

Güzel Bir C Sorusu ... 2

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
7
Cevap
0
Favori
657
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • 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...







  • 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 >
  • şöyle de olabilir...

    void swap (int *a, int *b) {
    *a ^= *b;
    *b ^= *a;
    *a ^= *b;
    }
  • 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
  • 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




  • benim cevaplar yanlış mı oldu öylece biraz daha öğrenmek gerek demek
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.