Çözüldü C kodumda programı nasıl kapatabilirim?

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

375973

Hectopat
Katılım
14 Ekim 2020
Mesajlar
1.060
Makaleler
6
Çözümler
4
Aşağıda yazdığım kod bloğunda, if koşulundan sonra eğer ki girilen değer 4'ten büyükse programın devam etmemesini istiyorum. Eğer 4'ten büyük bir değer girilirse program değişkenleri almaya devam ediyor, en sonunda hatalı bir değer girildiğini söylüyor. Bunu nasıl düzeltebilirim? Şimdiden teşekkürler.
C:
#include <stdio.h>
int main(){
    int islem;
    int a;
    int b;
    printf("Merhabalar,hesap makinemize hosgeldiniz.\nLutfen bir islem seciniz.\n");
    printf("Toplama islemi icin=1\nCikarma islemi icin=2\nCarpma islemi icin=3\nBolme islemi icin=4");
    scanf("%d",&islem);
    if(islem>4){
        printf("Hatali bir islem sectiniz.");
    } // Buraya gelindiği an eğer ki 4'ten büyük bir değer girilirse programın kapatılmasını, işlemin devam etmemesini istiyorum.
 
    printf("Lutfen isleminizde kullanmak istediginiz 2 sayiyi giriniz.\n");
    scanf("%d %d",&a,&b);
    switch(islem){
        case 1: printf("Girdiginiz sayilarin toplami sudur=%d",(a+b)); break;
        case 2: printf("Girdiginiz sayilarin farki sudur=%d",(a-b)); break;
        case 3: printf("Girdiginiz sayilarin carpimi sudur=%d",(a*b)); break;
        case 4: printf("Girdiginiz sayilarin bolumu sudur=%d",(a/b)); break;
        default: printf("Var olmayan bir islem sectiniz. Secebileceginiz islemler 1 ve 4 arasindadir.");
     
     
     
     
    }
 
 
 
 
 
 
    return 0;
}
 
Son düzenleyen: Moderatör:
Çözüm
Aslında Switch'e default koymuşsunuz çok gerek olduğunu düşünmüyorum if'e ama şöyle yapabilirsiniz:
Kod:
if(islem>4){
        printf("Hatali bir islem sectiniz.");
        return 0;
    }
Ek olarak:
Kod:
default: printf("Var olmayan bir islem sectiniz. Secebileceginiz islemler 1 ve 4 arasindadir.");
break; // Break kodu unutulmuş
Aslında Switch'e default koymuşsunuz çok gerek olduğunu düşünmüyorum if'e ama şöyle yapabilirsiniz:
Kod:
if(islem>4){
        printf("Hatali bir islem sectiniz.");
        return 0;
    }
Ek olarak:
Kod:
default: printf("Var olmayan bir islem sectiniz. Secebileceginiz islemler 1 ve 4 arasindadir.");
break; // Break kodu unutulmuş
 
Çözüm
exit(0); ile yapabiliyor olman lazım yani böyle olacak.

C:
if(islem>4){
    exit(0);
}
[Error] 'exit' was not declared in this scope bu hatayı aldım.
Teşekkür ederim yardımınız için evet işe yaradı.
 
return 0; da çalışıyormuş
 
Son düzenleme:
Kullanıcıdan yapılacak işlemi alır almaz uyarı vermene gerek yok. Herhangi bir case'e girmediğinde defaulta düşecek, orda hata mesajı yazabilirsin. Hem istemediğin bir girdi aldığında da orda çıkarsın akıştan, daha temiz olur.
 
Yani #include <stdlib.h> eklemen gerekiyor.

Ayrıca exit(0); yöntemi belleği de temizliyor olması lazım. Tam emin değilim.
Evet. C99 ile birlikte bellek temizlemeyi kullanmamak için _exit() fonksiyonu kullanılabilir. İşlemler arası parent-child ilişkisi yoksa _exit() kullanmanın pek bir alemi yok.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…