C'de entere basınca program kapanıyor

getchar(); main fonksiyonunun son satırına ekler misin? return 0; eklediysen return'den önce olsun. Windows'ta çalıştırıyorsan bu satır, program kapanmadan önce kullanıcıdan tuşa basmasını bekliyor.
 
Programın kapanmasının nedeni, scanf fonksiyonlarının kullanıcının girdiği değeri okuduğunda klavyeden girilen Enter tuşunun bir sonraki girdi olarak okunmasıdır. Bunu engellemek için scanf fonksiyonlarından sonra getchar() fonksiyonunu çağırarak, klavyeden girilen Enter tuşunu yutabilirsiniz.
Burada bunun uygulanmış hali:
Kod:
#include <stdio.h>

int main()
{
    float vizeNot,finalNot,devamNot;
    float ortalama=0;
    printf("vize notunu giriniz :");
    scanf("%f",&vizeNot); printf("\n");
    printf("final notunu giriniz :");
    scanf("%f",&finalNot); printf("\n");
    printf("devam notunu giriniz :");
    scanf("%f",&devamNot); printf("\n");

    // Klavyeden girilen Enter tuşunu yutma
    getchar();

    ortalama = ( (vizeNot/100)*40) + ( (finalNot/100)*50) + ( (devamNot/100)*10);

    if(ortalama>=50){
        printf("\n\ngectiniz...\n\n");
    }else if(ortalama>=35 & ortalama<50){
        printf("\n\nkosullu gectiniz...\n\n");
    }else{
        printf("\n\nkaldiniz...\n\n");
    }

    printf("ortalama : %f", ortalama);

    return 0;
}
Burada, scanf fonksiyonlarından sonra getchar() fonksiyonu çağrılarak klavyeden girilen Enter tuşu yutulmuştur.
 

Technopat Haberler

Geri
Yukarı