C dili ile ilgili anlayan baksın.

calem2

Üye
24 Haz 2010
103
0
Lütfen öncelikle bu konuyu yardım bölümüne taşınmasını istemeyin orada açtım belli bir müddet bekledim kimsenin yardım ettiği yok o yüzden buraya açıyorum. C dilinden anlayan arkadaşalara sesleniyorum kaç günlerdir yazdığım programdaki hatayı bulamadım. Sorun şu ki program scanf("%c",&c2); fonksiyonunu es geçiyor sebebini çözen olursa lütfen yazın. Programda başka mantıksal hatalarda var biliyorum daha tamamlamadım ama scanf fonksiyonunu es geçecek bir hata olmadığını düşünüyorum ama üstadlar ne düşünür bilmem bi bakın rica ediyorum.

**********************************************
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(){
printf("Aklindan bir sayi tut. ");
int tahmin,i,a;
char c1,c2,c3;
srand(time(NULL));
tahmin = 1 + rand()%100;
do{
printf("Tuttugun sayi %d mi e/h ? : ",tahmin);
a = tahmin;
scanf("%c",&c1);
if (c1 == 'e' || c1 == 'E')
{
printf("Nasil bildim ama :D");
break;
}
else if (c1 == 'h' || c1 == 'H')
{
printf("Peki tuttugun sayi %d den buyuk mu kucuk mu b/k ?",tahmin);
scanf("%c",&c2);
if (c2 == 'b' || c2 == 'B')
{
tahmin = a + rand()%101;
}
else if (c2 == 'k' || c2 == 'K')
{
tahmin = 1 + rand()%a;
}
}
else {
continue;
}
}
while(1);
}
 

ihan3t

Kadim Üye
7 Şub 2012
5,018
23
Kodunu çok değiştirmemeye çalıştım , şu haliyle denediğimde bütün iflerin içine giriyor. Bunu daha fonksiyonel bir hale getirebilirsin.

Kod:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>


int main(){

printf("Aklindan bir sayi tut. \n");
int tahmin,i,a;
char c1,c2,c3;
srand(time(NULL));
tahmin = 1 + rand()%100;

printf("Tuttugun sayi %d mi e/h ? : ",tahmin);
a = tahmin;
scanf("%c",&c1);

do{
    if (c1 == 'h' || c1 == 'H')
    {
        printf("Peki tuttugun sayi %d den buyuk mu kucuk mu b/k ?\n",tahmin);
        scanf("%c",&c2);
        if (c2 == 'b' || c2 == 'B')
        {
            tahmin = a + rand()%101;
        }
        else if (c2 == 'k' || c2 == 'K')
        {
            tahmin = 1 + rand()%a;
        }
    }
}
while(c1 != 'e' || c1 != 'E');

printf("Nasıl bildim ama.\n");


getchar();
getchar();
}
 

calem2

Üye
24 Haz 2010
103
0
Kardeşim çok sağolasın problem çözüldü ama deminkinde neden scanf'i atlıyoduki char dışında bir veri tipi istediğimde istiyordu fakat char %c istediğimde sıkıntı çıkarıyordu sebebini açıklayabilirmisin öğrenmek çok istiyorum adam akıllı bir programlama dilini ondan, sonra bir başkasına geçmeyi planlıyorum o yüzden tamamen kavramak istiyorum :)
 

calem2

Üye
24 Haz 2010
103
0
Birde birşey daha sorucam srand()% den sonra bir sayı yerine değişken yazabiliyormuyuz. Denedim yapamadım ekstradan birşey mi tanımlamak gerekli ?
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.