none
if komutu duzgun calışmıyor

    Soru

  • #include <stdio.h>

    int main()
    {
        float hesap , bas_bakiye,harcama,max_bakiye,kredi,yeni_bakiye,max_kredi;
            printf("Hesap numarasini giriniz(Cikis icin -1)>>>");
            scanf("%f",&hesap);
        if(hesap!=-1){
            printf("Baslangictaki bakiyeyi girin>>>");
                scanf("%f",&bas_bakiye);
            printf("Toplam Harcamayi Girin>>>");
                scanf("%f",&harcama);
            printf("Yoplam kredi miktarini giriniz>>>");
                scanf("%f",&kredi);
            printf("Kredi limitini girin>>>");
                scanf("%f",&max_kredi);
                      printf("%f\n",hesap);
                      printf("%f\n",max_kredi);
            yeni_bakiye=(bas_bakiye+harcama-kredi);
            max_bakiye=kredi+max_kredi;
                      printf("%f\n",yeni_bakiye);
            if(yeni_bakiye>=max_bakiye){
               printf("Kredi limiti asildi\n");
            }

          while(hesap!=-1){
            printf("Hesap numarasini giriniz(Cikis icin -1)>>>");
            scanf("%f",&hesap);
                if(hesap!=-1){
            printf("Baslangictaki bakiyeyi girin>>>");
                scanf("%f",&bas_bakiye);
            printf("Toplam Harcamayi Girin>>>");
                scanf("%f",&harcama);
            printf("Yoplam kredi miktarini giriniz>>>");
                scanf("%f",&kredi);
            printf("Kredi limitini girin>>>");
                scanf("%f",&max_kredi);
                      printf("%f\n",hesap);
                      printf("%f\n",max_kredi);
            yeni_bakiye=(bas_bakiye+harcama-kredi);
                      max_bakiye=kredi+max_kredi;

                      printf("%f\n",yeni_bakiye);
            if(yeni_bakiye>=max_bakiye){
               printf("Kredi limiti asildi\n");
            }
          }
          else{
            printf("Hesap numarasi girilmedi");
          }

        }
        }
        else {
            printf("Hesap Numarasi girilmedi");
        }
        return 0;
    }
       

    alttaki kod düzgün çalışmıyor 

    istediği bilgileri girdikten sonra if komutu yanlış çalışıyor

       if(yeni_bakiye>=max_bakiye){
               printf("Kredi limiti asildi\n");
            }

    31 Ocak 2018 Çarşamba 12:42

Tüm Yanıtlar

  • Hayır aslında doğru çalışıyor. Sadece sen kodlarken biraz hesap hatası yapmışsın. Örneğin;

    ** Yeni bakiyeyi yanlış hesaplamışsın. yeni_bakiye=(bas_bakiye-harcama+kredi) olması lazım. Başlangıçta olan parası ile kullandığı kredi yi topla harcamasını çıkar.

    ** Max_Bakiye yi yanlış hesaplamışsın .  max_bakiye=bas_bakiye+max_kredi; olması lazım. Başlangıçta olan parası ile kullanabileceği maksimum kredi miktarının toplamı.

    int main()
    {
        float hesap , bas_bakiye,harcama,max_bakiye,kredi,yeni_bakiye,max_kredi;
            printf("Hesap numarasini giriniz(Cikis icin -1)>>>");
            scanf("%f",&hesap);
        if(hesap!=-1){
            printf("Baslangictaki bakiyeyi girin>>>");
                scanf("%f",&bas_bakiye);
            printf("Toplam Harcamayi Girin>>>");
                scanf("%f",&harcama);
            printf("Toplam kredi miktarini giriniz>>>");
                scanf("%f",&kredi);
            printf("Kredi limitini girin>>>");
                scanf("%f",&max_kredi);
                      printf("hesap: %f\n",hesap);
                      printf("max_kredi: %f\n",max_kredi);
            yeni_bakiye=(bas_bakiye-harcama+kredi);
            max_bakiye=bas_bakiye+max_kredi;
                      printf("yeni_bakiye : %f\n",yeni_bakiye);
            if(yeni_bakiye>=max_bakiye){
               printf("Kredi limiti asildi\n");
            }
    
          while(hesap!=-1){
            printf("Hesap numarasini giriniz(Cikis icin -1)>>>");
            scanf("%f",&hesap);
                if(hesap!=-1){
            printf("Baslangictaki bakiyeyi girin>>>");
                scanf("%f",&bas_bakiye);
            printf("Toplam Harcamayi Girin>>>");
                scanf("%f",&harcama);
            printf("Yoplam kredi miktarini giriniz>>>");
                scanf("%f",&kredi);
            printf("Kredi limitini girin>>>");
                scanf("%f",&max_kredi);
                      printf("Hesap : %f\n",hesap);
                      printf("Max Kredi : %f\n",max_kredi);
            yeni_bakiye=(bas_bakiye+harcama-kredi);
                      max_bakiye=kredi+max_kredi;
    
                      printf("Yeni Bakiye: %f\n",yeni_bakiye);
            if(yeni_bakiye>=max_bakiye){
               printf("Kredi limiti asildi\n");
            }
          }
          else{
            printf("Hesap numarasi girilmedi");
          }
    
        }
        }
        else {
            printf("Hesap Numarasi girilmedi");
        }
        return 0;
    }
    şeklinde değiştirdim. 

    31 Ocak 2018 Çarşamba 13:33
  • Hayır aslında doğru çalışıyor. Sadece sen kodlarken biraz hesap hatası yapmışsın. Örneğin;

    ** Yeni bakiyeyi yanlış hesaplamışsın. yeni_bakiye=(bas_bakiye-harcama+kredi) olması lazım. Başlangıçta olan parası ile kullandığı kredi yi topla harcamasını çıkar.

    ** Max_Bakiye yi yanlış hesaplamışsın .  max_bakiye=bas_bakiye+max_kredi; olması lazım. Başlangıçta olan parası ile kullanabileceği maksimum kredi miktarının toplamı.

    int main()
    {
        float hesap , bas_bakiye,harcama,max_bakiye,kredi,yeni_bakiye,max_kredi;
            printf("Hesap numarasini giriniz(Cikis icin -1)>>>");
            scanf("%f",&hesap);
        if(hesap!=-1){
            printf("Baslangictaki bakiyeyi girin>>>");
                scanf("%f",&bas_bakiye);
            printf("Toplam Harcamayi Girin>>>");
                scanf("%f",&harcama);
            printf("Toplam kredi miktarini giriniz>>>");
                scanf("%f",&kredi);
            printf("Kredi limitini girin>>>");
                scanf("%f",&max_kredi);
                      printf("hesap: %f\n",hesap);
                      printf("max_kredi: %f\n",max_kredi);
            yeni_bakiye=(bas_bakiye-harcama+kredi);
            max_bakiye=bas_bakiye+max_kredi;
                      printf("yeni_bakiye : %f\n",yeni_bakiye);
            if(yeni_bakiye>=max_bakiye){
               printf("Kredi limiti asildi\n");
            }
    
          while(hesap!=-1){
            printf("Hesap numarasini giriniz(Cikis icin -1)>>>");
            scanf("%f",&hesap);
                if(hesap!=-1){
            printf("Baslangictaki bakiyeyi girin>>>");
                scanf("%f",&bas_bakiye);
            printf("Toplam Harcamayi Girin>>>");
                scanf("%f",&harcama);
            printf("Yoplam kredi miktarini giriniz>>>");
                scanf("%f",&kredi);
            printf("Kredi limitini girin>>>");
                scanf("%f",&max_kredi);
                      printf("Hesap : %f\n",hesap);
                      printf("Max Kredi : %f\n",max_kredi);
            yeni_bakiye=(bas_bakiye+harcama-kredi);
                      max_bakiye=kredi+max_kredi;
    
                      printf("Yeni Bakiye: %f\n",yeni_bakiye);
            if(yeni_bakiye>=max_bakiye){
               printf("Kredi limiti asildi\n");
            }
          }
          else{
            printf("Hesap numarasi girilmedi");
          }
    
        }
        }
        else {
            printf("Hesap Numarasi girilmedi");
        }
        return 0;
    }
    şeklinde değiştirdim. 

     Çok teşekkür ederim. Bu basit hatalar hep uykusuzluktan:))

    31 Ocak 2018 Çarşamba 14:06