C# Hakkında Çok Basit Bir Soru ?
-
merhaba arkadaşlar,
c# hakkında çok basit bi soru soracağım, takıldım bir türlü yapamadım
şimdi;
2 tane int değişkenimiz var, ahanda şöyle
int a = 5;
int b = 6;
şimdi yapmak istediğim hiç bir ek değişken kullanmadan, a'nın değerini b'ye, b'nin değerinide a ya vermeniz
not: bakalım kaç kişi bulabilecek :))
-
şu şekilde yapılabilir basitçe
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1{
class Program
{
static int a;static int b;
public static void swap(int sayi1,int sayi2){
b = sayi1;
a = sayi2;
}
static void Main(string[] args){
a = 5;
b = 6;
Console.WriteLine("a nın değeri {0} \n b nin değeri {1}", a, b);swap(a, b);
Console.WriteLine("a nın değeri {0} \n b nin değeri {1}", a, b);}
}
}
-
legion_of_doom bunu yazdı:
-----------------------------şu şekilde yapılabilir basitçe
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1{
class Program
{
static int a;static int b;
public static void swap(int sayi1,int sayi2){
b = sayi1;
a = sayi2;
}
static void Main(string[] args){
a = 5;
b = 6;
Console.WriteLine("a nın değeri {0} \n b nin değeri {1}", a, b);swap(a, b);
Console.WriteLine("a nın değeri {0} \n b nin değeri {1}", a, b);}
}
}
-----------------------------hocam "ek değişken kullanmadan" bundan ne anlıyorsun ?,
sen değişkeni bırak metot kullanmışsın
zaten işin fantezisi o :).
-
kendi fonksiyonumu kullandım, ne oldu ki? Farzı misal c# da da böyle bir fonksiyon olduğunu düşün.. nasıl ki pow metodunda üst almak için birşeyler yazmıyorsun hazır math sınıfını kullanıyorsun bunu da swap fonk. olarak düşün :)
başka türlü aklıma birşey gelmedi şuan
-
legion_of_doom bunu yazdı:
-----------------------------kendi fonksiyonumu kullandım, ne oldu ki? Farzı misal c# da da böyle bir fonksiyon olduğunu düşün.. nasıl ki pow metodunda üst almak için birşeyler yazmıyorsun hazır math sınıfını kullanıyorsun bunu da swap fonk. olarak düşün :)
başka türlü aklıma birşey gelmedi şuan
-----------------------------amacımın gerçekten , a nın değerini b ye aktarmak olduğunu mu düşünüyorsun yoksa ? :)
ben sadece biraz eğlenelim istedim, alın size geyik :))
-
var mı peki bir değişken ve metod kullanmadan swap yapma olayı..
-
int a = 5;
int b = 6;
a = 2*a + b;
edit: b = (a-b) / 2;
a = a - 2*b;
Not: C# sorusu değil, genel bir sorudur.
-
legion_of_doom bunu yazdı:
-----------------------------
var mı peki bir değişken ve metod kullanmadan swap yapma olayı..
-----------------------------evet var , hemde 3 satırlık kod ile :),
@Destroyer
evet doğru (:
bir başka yöntem,
int a = 5;
int b = 6;
a = a ^ b;
b = b ^ a;
a = a ^ b;
not: çekici olsun diye c# yazdım :)
-
sileyim bunu:)
-
Çözüm 2 bilinmeyenli 2 değişken mantığı ile yapılmalıdır başka bir yolu olduğunu da sanmam.
Gerçi bu mantıkta SONSUZ farklı çözüm vardır...Destroyer olayı çözmüş.
-
@SharpShooter
a = a ^ b;
b = b ^ a;
a = a ^ b;
Bunda bir hata var sanki ?!?
