Çözüldü gets ve fgets komutları çalışmıyor

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

Chucker

Megapat
Katılım
25 Ağustos 2016
Mesajlar
489
Çözümler
3
Daha fazla  
Cinsiyet
Erkek
Böyle bir kod yazdım fakat ne "gets" ne de "fgets" komutuyla kullanıcıdan değer alamıyorum, bir sonraki satıra geçiyor. Nerede hata yapıyorum? İsterseniz kodun devamını da atabilirim.



C:
#include <stdio.h>
#include <stdlib.h>

int main()
{
    //tanimlama
    int tc_kimlik,cocuk_sayisi,engelli_oran,buyuk6,kucuk6,muaf;
    float aylik_brut,net_ucret;

    char medeni_durum,engelli,calisan_sayisi,e,es_calisma,ad_soyad[30];
    //okuma

     do{
        printf("Lutfen calisanin TC Kimlik Numarasini giriniz.\n");
        scanf("%d",&tc_kimlik);
        printf("Lutfen calisanin Adini ve Soyadini giriniz.\n");
        fgets(ad_soyad, 29, stdin);
 
Kodun geri kalanının bulunduğu DLC kaç dolar EA bey?
Kusura bakmayın.

C:
#include <stdio.h>
#include <stdlib.h>

int main()
{
    //tanimlama
    int tc_kimlik,cocuk_sayisi,engelli_oran,buyuk6,kucuk6,muaf;
    float aylik_brut,net_ucret;

    char medeni_durum,engelli,calisan_sayisi,e,es_calisma,ad_soyad[30];
    //okuma

     do{
        printf("Lutfen calisanin TC Kimlik Numarasini giriniz.\n");
        scanf("%d",&tc_kimlik);
        printf("Lutfen calisanin Adini ve Soyadini giriniz.\n");
        fgets(ad_soyad, 29, stdin);

        printf("Lutfen calisanin Aylik Brut Ucretini giriniz.\n");
        scanf("%f",&aylik_brut);

        do{
        printf("Lutfen calisanin Medeni Durumunu giriniz.(e/b)\n");
        scanf(" %c",&medeni_durum);}
        while (medeni_durum!='e' && medeni_durum!='E' && medeni_durum!='b' && medeni_durum!='B');
        if (medeni_durum=='e' || medeni_durum=='E')
            {do{
            printf("Calisanin esi calisiyor mu?(e/h)\n");
            scanf(" %c",&es_calisma);}
            while (es_calisma!='e' && es_calisma!='E' && es_calisma!='h' && es_calisma!='H');}
        else if(es_calisma=='h' || es_calisma=='H')
            {aylik_brut=aylik_brut+220.0;}

        do{
        printf("Lutfen calisanin Bakmakla Yukumlu Oldugu Cocuk Sayisini giriniz.\n");
        scanf("%d",&cocuk_sayisi);}

        while (cocuk_sayisi<0);
        if (cocuk_sayisi>0)
            {do{
            printf("Calisanin '6' yasindan buyuk kac cocugu var?\n");
            scanf("%d",&buyuk6);}
            while (buyuk6>cocuk_sayisi || buyuk6<0);
            kucuk6=cocuk_sayisi-buyuk6;
            aylik_brut=aylik_brut+kucuk6*25+buyuk6*45;}




        do{
        printf("Lutfen calisanin Engelli olup olmadiginizi giriniz.(e/h)\n");
        scanf(" %c",&engelli);}
        while (engelli!='e' && engelli!='E' && engelli!='h' && engelli!='H');
        if (engelli=='e' || engelli=='E')
            {do{
            printf("Lutfen engellilik oraninizi giriniz.\n");
            scanf("%d",&engelli_oran);}
            while(engelli_oran<1 || engelli_oran>100);
            if (engelli_oran>=80)
                muaf=900;
            else if (engelli_oran>=60 && engelli_oran<80)
                muaf=470;
            else if (engelli_oran>=40 && engelli_oran<60)
                muaf=210;
            else
                muaf=0;

                {if (aylik_brut<2000)
                net_ucret=aylik_brut-(aylik_brut-muaf)*0.15;
                else if (aylik_brut>=2000 && aylik_brut<5000)
                net_ucret=aylik_brut-(aylik_brut-muaf)*0.2;
                else if (aylik_brut>=5000 && aylik_brut<10000)
                net_ucret=aylik_brut-(aylik_brut-muaf)*0.27;
                else if (aylik_brut>=10000)
                net_ucret=aylik_brut-(aylik_brut-muaf)*0.35;}}



        do{
        printf("Baska calisan var mi?(e/h)\n");
        scanf(" %c",&calisan_sayisi);}
        while (calisan_sayisi!='e' && calisan_sayisi!='E' && calisan_sayisi!='h' && calisan_sayisi!='H');}
    while(calisan_sayisi=='e' || calisan_sayisi=='E');

    printf("Aylik net ucretiniz=%.2f\n",net_ucret);










 return 0;
}
 
Hata mesajını atar mısın ?
Hata mesajı almıyorum bir sonraki satıra geçiyor.
Kod çok karışık. Kendimce düzeltiyorum şu an ama sanırım do while döngülerini yanlış yapmışsınız. En azından benim bildiğim şekli o değil.
Scanf kullandığım zaman sıkıntı çıkmıyor aslında ama o zaman da boşluk kullanamıyorum.
 

Dosya Ekleri

  • Ekran Alıntısı.PNG
    3,7 KB · Görüntüleme: 77
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…