Konuyu görüntüle
IUCODERS FORUM > Programlama > C / C++ > C++ Yardım
Yazar
wardom


avatar
Kirklareli
admin
Kayıt: 12.11.2006
25.05.2008-13:14 #44930
Merhaba

Arkadaşlar öncelikle elimde int deste[satir][sutun] dan oluşan iki boyutlu dizim var ve benbu matrise sırayla 52 kartlarını yerleştirdim.Ve daha sonra

int satir, sutun, kart;

   for ( kart = 1; kart <= 52; kart++ ) {
      do {
         satir = rand() % 4;
         sutun = rand() % 13;
      } while( wdeste[ satir ][ sutun ] != 0 );

      wdeste[ satir ][ sutun ] = kart;


koduyla karılan kartları

for ( kart = 1; kart <= 5; kart++ )

      for ( satir = 0; satir <= 3; satir++ )

         for ( sutun = 0; sutun <= 12; sutun++ )

            if ( deste[ satir ][ sutun ] == kart )
               printf( "%s  %s",
			            taraf[ sutun ], takim[ satir ]);


koduyla 5 tane dağıtıyorum.

İçinde çift olup olmadıını kontrol etmek için bir fonksiyon yazdım fakat seçilen kartların içinde çift kontrolü yapamıyorum

Fonksiyonun prototipini şu şekilde yazdım void cift(const char *[]); (Sadece sütün yani sayısını kontrol etmesi için)

Fonksiyonu da şu şekilde yazdım fakat seçtiğim 5 tane kardın içinde çift olsa da olmasa da "çift var" yazdırıyor.

Fonksiyon da şu şekilde;

void cift(const char *taraf[])
{
	int satir,sutun;

	for(satir = 0;satir <= 3;satir++)
		for(sutun = 0;sutun <= 12;sutun++)
			if(taraf[sutun] == taraf[sutun++])
				printf("
El cift iceriyor
");
			else
				printf("
El cift icermiyor
");
}


Bunu nasıl düzeltebilirim??





www.sonergonul.net





Yazar
nohead


avatar
Tristram
Kayıt: 26.08.2006
25.05.2008-13:46 #44932

void cift(const char *taraf[])
{
	int satir,sutun;

	for(satir = 0;satir <= 3;satir++)
		for(sutun = 0;sutun <= 12;sutun++)
			if(taraf[sutun] == taraf[sutun++])
			//....
}



if(taraf[sutun] == taraf[sutun+1])

olarak değiştirmeyi denedin mi? Belki aynı kartları karşılaştırıyodur?






"The will of the nation" is one of those expressions which have been most profusely abused by the wily and the despotic of every age."
Alexis de Tocqueville


¨


Yazar
clairvoyant


avatar
Antalya
Kayıt: 05.05.2006
25.05.2008-13:50 #44933
Koduna ne nasıl oluyor diye bakmadım ama taraf[sutun] == taraf[sutun++] ifadesi her zaman true döndürür. Bu nedenle "El cift iceriyor" mesajını alıryorsundur.





Let`s make this world a better place to live !

Yazar
wardom


avatar
Kirklareli
admin
Kayıt: 12.11.2006
25.05.2008-16:03 #44937
taraf[sutun] == taraf[sutun++] ile bir kartın sayısını ve bir sonraki kartın sayısını karşılaştırıyorum.Neden herzaman true döndürsün ki bu?





www.sonergonul.net





Yazar
hamdikan


avatar
dünya
Kayıt: 23.01.2006
25.05.2008-16:10 #44938
if(taraf[sutun] == taraf[sutun++])

burda arttirma operatorlerinde prefix ve postfix olayı var
kontrol taraf[sutun] == taraf[sutun] olarak yapılıyor ve sonra sutun++ islemi gerceklesiyor diye dusunuyorum.
if(taraf[sutun] == taraf[++sutun]) böle bi dene istersen





yok

Yazar
clairvoyant


avatar
Antalya
Kayıt: 05.05.2006
25.05.2008-16:13 #44939
wardom yazdi
 
taraf[sutun] == taraf[sutun++] ile bir kartın sayısını ve bir sonraki kartın sayısını karşılaştırıyorum.Neden herzaman true döndürsün ki bu?

Çünkü artma olayı işlem bittiğinde gerçekleşir.

taraf[sutun] == taraf[++sutun]

olarak yaparsan farklı olabilir.



EDIT: Hamdi ne ara yazdın yaw :)





Let`s make this world a better place to live !

Del.icio.us
Digg
Facebook
Furl
Google
Blink
Simpy
Spurl
Y! MyWeb