[]

C de programlama sorusu
Merhabalar daha önce sormuş olduğum (git: 113218) soru hakkında yine.
Binary search le soruyu çözmeye çalıştım, kod aşağıda compile etmek istediğimde while(girdi!=d); kısmında syntax error veriyor. nerde yanlışım var bir el atabilirmisiniz duyurunun sevgili debuggerları :)
#include <stdio.h>
#include <string.h>
#define enKucukSayi 1
#define enBuyukSayi 100
/* Baslangic*/
int main( void )
{
int tahmin = 0;
int minimumDeger = enKucukSayi;
int maksimumDeger = enBuyukSayi + 1;
char girdi,d,b,k;
printf( "\n" );
printf( "%d ile %d arasinda bir sayi tutun", enKucukSayi, enBuyukSayi );
do
{
tahmin = minimumDeger + ( ( maksimumDeger - minimumDeger ) / 2 );
printf( "\n" );
printf( "Tuttugunuz sayi %d mi? ", tahmin );
printf( "Eger dogruysa '%s', tuttugunuz sayidan buyukse '%s' kucukse'%s' giriniz : ", d, b, k );
scanf( "%s", girdi);
if (girdi == d)
{
printf( "\n" );
printf( "tuttugunuz sayi %d !",tahmin );
printf( "\n" );
break;
}
if ( girdi==b)
maksimumDeger = tahmin;
else if (girdi==k)
minimumDeger = tahmin;
else puts ("Bu harf gecersiz")
} while(girdi!=d);
system("PAUSE");
return;
}
Binary search le soruyu çözmeye çalıştım, kod aşağıda compile etmek istediğimde while(girdi!=d); kısmında syntax error veriyor. nerde yanlışım var bir el atabilirmisiniz duyurunun sevgili debuggerları :)
#include <stdio.h>
#include <string.h>
#define enKucukSayi 1
#define enBuyukSayi 100
/* Baslangic*/
int main( void )
{
int tahmin = 0;
int minimumDeger = enKucukSayi;
int maksimumDeger = enBuyukSayi + 1;
char girdi,d,b,k;
printf( "\n" );
printf( "%d ile %d arasinda bir sayi tutun", enKucukSayi, enBuyukSayi );
do
{
tahmin = minimumDeger + ( ( maksimumDeger - minimumDeger ) / 2 );
printf( "\n" );
printf( "Tuttugunuz sayi %d mi? ", tahmin );
printf( "Eger dogruysa '%s', tuttugunuz sayidan buyukse '%s' kucukse'%s' giriniz : ", d, b, k );
scanf( "%s", girdi);
if (girdi == d)
{
printf( "\n" );
printf( "tuttugunuz sayi %d !",tahmin );
printf( "\n" );
break;
}
if ( girdi==b)
maksimumDeger = tahmin;
else if (girdi==k)
minimumDeger = tahmin;
else puts ("Bu harf gecersiz")
} while(girdi!=d);
system("PAUSE");
return;
}

eğer eşitlediğin şey bir karakterse(char), onu apostrof(') içine alman lazım while(girdi=='k'), if(girdi!='d') gibi.
- 3 atli 7 katli
(14.12.09 22:26:24)

teşekkürler ama aynı yerde yine aynı hatayı veriyor
- trypana
(14.12.09 22:32:59)

karakterleri %s ile değil %c ile göstermelisin bi de.
- 3 atli 7 katli
(14.12.09 22:52:14)

Bi de scanf kısmında değerin başına & koyman lazım. Bi saniye sana düzeltilmiş halini atayım.
- 3 atli 7 katli
(14.12.09 22:53:21)

heh heh
else puts ("Bu harf gecersiz")
satirinin sonuna ; koymamissin.
edit: ek olarak, char girdi demissin ve sonra girdiyi %s'le okutmaya çalismissin, ya girdiyi string haline getireceksin yani char girdi[10] gibi mesela, ya da scanf'i söyle yapacaksin:
scanf("%c",&girdi)
girdi degerin string olacaksa (ki bu programda onu planladigini sanmiyorum)
scanf("%s",girdi) dersin veya stringinde bosluk da varsa gets fonksiyonunu kullanirsin. ama compile edememeninsebebi ilk söyledigim noktali virgül.
else puts ("Bu harf gecersiz")
satirinin sonuna ; koymamissin.
edit: ek olarak, char girdi demissin ve sonra girdiyi %s'le okutmaya çalismissin, ya girdiyi string haline getireceksin yani char girdi[10] gibi mesela, ya da scanf'i söyle yapacaksin:
scanf("%c",&girdi)
girdi degerin string olacaksa (ki bu programda onu planladigini sanmiyorum)
scanf("%s",girdi) dersin veya stringinde bosluk da varsa gets fonksiyonunu kullanirsin. ama compile edememeninsebebi ilk söyledigim noktali virgül.
- samfisher
(14.12.09 23:13:21 ~ 23:38:20)

@samfisher çok sağol gerçekten :) compile ediyor ama saçmalıyo haliyle. diğer hataları düzeltip yeniden denicem
- trypana
(14.12.09 23:21:02)
1