#include <stdio.h>
intmain(){
char tercih;
int x,y,z;
printf("Birinci sayi giriniz.");
scanf("%d",&x);
printf("Ikinci sayi giriniz.");
scanf("%d",&y);
printf("nToplama->t");
printf("nCikartma->c");
printf("nBolme->b");
printf("nCarpma->x");
printf("nHangi islem?");
scanf("%c",&tercih);
if (tercih=='t'){
z=x+y;
printf("nToplama sonucu=%d",z);
}
if (tercih=='c'){
z=x-y;
printf("nCıkarma sonucu=%d",z);
}
if (tercih=='x'){
z=x*y;
printf("nCarpma sonucu=%d",z);
}
if (tercih=='b'){
if (y!=0){
z=x/y;
printf("nBolme sonucu=%f",z);
}
if (y==0)
printf("nPayda sifir olamaz.");
}
getch();
} c dilinde if çalışmıyor
12
●412
- 11-10-2018, 11:07:24Kimlik doğrulama veya yönetimden onay bekliyor.Öncelikle herkese merhaba, c dilinde çalışıyorum hesap makinesi türevi birşey yapamaya çalışıyorum. İf komutu kullanıyorum fakat if komutu görülmeden cmd kapanıyor. Nerede yanlış yapıyorum?
- 11-10-2018, 11:39:33scanf yerine getchar metodunu kullanıp dener misiniz, variable türünden bağımsız çalışıyor çünkü
- 11-10-2018, 11:48:39evet hocam
Alperenyld adlı üyeden alıntı: mesajı görüntüle
dediğiniz gibi yaptım fakat program hata verdi
godlessturtle0 adlı üyeden alıntı: mesajı görüntüle - 11-10-2018, 11:50:18printf("asd:");
getchar();
şeklinde olacak içine parametre vermeyin, gelen değeri de string değişkene aktarın - 11-10-2018, 11:54:55
#include <stdio.h> #include <conio.h> int main(){ char tercih; int x,y,z; printf("Birinci sayi giriniz."); scanf("%d",&x); printf("Ikinci sayi giriniz."); scanf("%d",&y); printf("nToplama->t"); printf("nCikartma->c"); printf("nBolme->b"); printf("nCarpma->x"); printf("nHangi islem?"); scanf("%s",&tercih); if (tercih=='t'){ z=x+y; printf("nToplama sonucu=%d",z); } if (tercih=='c'){ z=x-y; printf("nCıkarma sonucu=%d",z); } if (tercih=='x'){ z=x*y; printf("nCarpma sonucu=%d",z); } if (tercih=='b'){ if (y!=0){ z=x/y; printf("nBolme sonucu=%f",z); } if (y==0) printf("nPayda sifir olamaz."); } getch(); return 0; }bu şekilde çalışacaktır - 11-10-2018, 11:55:41hocam bu sefer 2. sayı giriniz kısmını pas geçiyor.
godlessturtle0 adlı üyeden alıntı: mesajı görüntüle
sağolun hocam çalıştı
Valx adlı üyeden alıntı: mesajı görüntüle - 11-10-2018, 12:05:49Hocam scanf ile char okurken %c den önce boşluk koymamışsınız. scanf bu durumda satırbaşı " n" karakterini okur ve tercih değişkeninize " n" koyarak devam eder. Bu da diğer if'lerin hepsini false yaparak programın bitmesine sebep oluyor.
Özetle
scanf("%c",&tercih);olan kodu
scanf(" %c",&tercih);olarak değiştirirseniz bu sorununuz çözülecektir.
Ayrıca genel olarak kodunuzda hep "if" kullanmanız da pek doğru değil. Bu kodda herhangi bir eksikliğe ya da yavaşlığa sebep olmasa da doğru olan bu işlemler için if-else kullanmanız daha doğru olacaktır.
