Bir önceki örneğimizde if-else yapısını kullanarak basit bir hesap makinesi oluşturmuştuk. Şimdi de aynısını Switch-case yapısını kullanarak oluşturacağız. Switch-case yapısının detaylı anlatımı için C Dili Switch-case sayfasını ziyaret edebilirsiniz.
#include <stdio.h>
main()
{
int sayi1,sayi2;
int islem;
printf("1.Sayiyi giriniz:");
scanf("%d",&sayi1);
printf("2.Sayiyi giriniz: ");
scanf("%d",&sayi2);
printf("\n\n1.Toplama\n");
printf("2.Cikarma\n");
printf("3.Bolme\n");
printf("4.Carma\n");
printf("\nIslemi seciniz:");
scanf("%d",&islem);
switch(islem){
case 1:
printf("Toplama isleminin sonucu : %d",sayi1 + sayi2);
break;
case 2:
printf("Cıkarma isleminin sonucu : %d",sayi1 - sayi2);
break;
case 3:
printf("Bolme isleminin sonucu : %f", (float) sayi1 / (float) sayi2);
break;
case 4:
printf("Carpma isleminin sonucu : %d", sayi1 * sayi2);
break;
default:
printf("Lutfen gecerli bir sayi giriniz..");
}
}
Yukarıdaki kod da öncelikle kullanıcıdan 2 tane sayı alıyoruz. Daha sonra kullanıcıya yapmak istediği işlemi soruyoruz ve kullanıcının seçimine göre ilgili işlemi yapıp ekrana yazdırıyoruz.
Kodun ekran çıktısı da şu şekildedir:

12 Yorum
olmuyor abii
Nerede hata alıyorsun
Sürekli default da yazan şey karşıma çıkıyor hesaplama yapamadım maalesef.
Yazdığın kodu iletir misin ?
nerden iletebilirim hocam?
#include
#include
int main(){
int sayi1,sayi2,islem;
printf(“ilk Sayiyi Girin”);
scanf(“%d”,&sayi1);
printf(“ikinci sayiyi girin”);
scanf(“%d”,&sayi2);
printf(“\n\n1.toplama\n”);
printf(“2.cikarma\n”);
printf(“3.carpma\n”);
printf(“4.bolme\n”);
printf(“Hangi islemi yapmak istiyorsunuz?”);
scanf(“%d”,islem);
switch(islem) {
case 1:
printf(“toplama isleminin sonucu : %d”,sayi1+sayi2);
break;
case 2:
printf(“cikarma isleminin sonucu : %d”,sayi1-sayi2);
break;
case 3:
printf(“carpma isleminin sonucu : %d”,sayi1*sayi2);
break;
case 4:
printf(“bolme isleminin sonucu : %f”,(float) sayi1/ (float) sayi2);
break;
}
}
20.satirda ki
scanf(“%d”,&islem) burada ‘&’ isareti kullanmadigin icin islem degiskenini almiyor. İlgili satiri degistirip tekrar dener misin
Hocam teşekkür ediyorum dikkatsizlik dolayı ben mi beceriksizim diyordum. Hallettim şu anda çok güzel çalışıyor elinize sağlık.
Rica ederim, ben de genelde unutuyordum 😄
Hocam bu arada bir şey sormak istiyorum. Case 4’de bölme işlemini%d yerine%f ile yani float ile gösteriyoruz bunun nedenini açıklar mısınız?
Sonucun tam cikmasi icin. Ornegin 5/2 yaptigimiz zaman 2.5 sonucunu vermesi icin. int olarak alsaydik 2 sonucunu verecekti.
#include
#include
int main()
{
float n1, n2;
printf(“Enter the first number: “);
scanf(“%f”,&n1);
printf(“enter the second number: “);
scanf(“%f”,&n2);
int op;
printf(“Enter an operator(+,-,/,*,^):”);
scanf(“%d”, &op);
switch (op)
{
case ‘+’:
printf(“%f”,(n1 + n2));
break;
case ‘-‘:
printf(“%f”,(n1 – n2));
break;
case ‘/’:
printf(“%f”,(n1 / n2));
break;
case ‘*’:
printf(“%f”,(n1 * n2));
break;
case ‘^’:
printf(“%f”, pow(n1, n2));
break;
default:
printf(“Error! operator is wrong”);
}
return 0;
}
neden sürekli default yerindeki yazıyı yazdırıyor?