Şimdi Ara

program geliştirme virgulden sonrasi

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
5
Cevap
0
Favori
475
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Herkese merhaba, programım calısıyor sorun; ekran cıktısı para donusumu yaparken virgullu sayılarda ıcermek zorunda 756,35TL gibi ancak bu kez eyer sonuc tam bir sayı ise 756TL yerine 756,00TL yazdırıyor ben 756TL yazdırıp virgulden sonraki sıfırların gozukmesini istemiyorum. Cast islemide yapmaya calıstım olmadı hatam nedir yardım eder misiniz?



    yazdıgım koduda paylasıyorum:

     

    #include <stdio.h>
    # include <conio.h>

    int money();
    int hotel();

    main()
    {
    int entertainment,food,a,x=1,y;
    float c;







    printf("please select country\n");
    printf("(1)Turkey\n(2)Brazil\n(3)Spain\n(4)Greece\n(5)Japan\n");


    scanf("%d",&x);
    switch(x){
    case 1:
    a=1*hotel();
    break;

    case 2:
    a=2*hotel();
    break;


    case 3:
    a=3*hotel();
    break;


    case 4:
    a=3*hotel();
    break;

    case 5:
    a=2*hotel();
    break;
    default:
    printf("please enter number (1-5) ((1)Turkey\n(2)Brazil\n(3)Spain\n(4)Greece\n(5)Japan\n) ");
    break;
    }

    printf("\n Please enter food cost:");
    scanf("%d",&food);
    a=food+a;

    printf("\n Please enter entertainment cost:");
    scanf("%d",&entertainment);
    a=entertainment+a;





    printf("\n Please select currency \n");

    printf("(1)1 TRY\n(2)2 USD \n(3)3 EUR\n");

    scanf("%d",&y);
    switch(y){
    case 1:
    c=1*a;
    printf("\n\n TOTAL COST=%5.2f TRY",c);
    break;

    case 2:
    c=0.4709*a;
    printf("\n\n TOTAL COST=%5.2f USD",c);
    break;


    case 3:
    c=0.348*a;
    printf("\n\n TOTAL COST=%5.2f EUR",c);
    break;
    // sadece virgulden sonra sifir varsa gozukmesin
    default:
    printf("plese enter number (1-3)");
    break;
    }


    printf("\nThank you for preferring HET! ");
    getch();
    return 0;
    }




    int hotel()
    {
    int y,b;
    printf("please select hotel quality \n");

    printf("(1)1 star\n(2)2 star \n(3)3 star\n");

    scanf("%d",&y);
    switch(y){
    case 1:
    b=1*300;
    break;

    case 2:
    b=2*300;
    break;


    case 3:
    b=3*300;
    break;

    default:
    printf("plese enter number (1-3)");
    break;
    }


    return b;
    }













  • para biriminin Türk Lirası olduğu seçenek %d ile yazdırılıp diğer seçenekler %5.2f ile yazdırılabilir.
    Çünkü TRY seçeeği sadece tamsayı diğer seçenekler virgüllü çıkıyor sanırım.
  • brk0001 B kullanıcısına yanıt
    Eyer food cost u 3000000000000 gibi girip entertainment i de 20000000 gibi bi sayı girersem EUR icinde 51003564,00 EUR gosteriyor :) BU arada attıgım her meseja cevap verdiginiz için ayriyetten cok tesekkur ederim :)
  • o zaman total cost yazan case lere şöyle bir kod uygulanabilir.(math.h kütüphanesini ekleyerek)
    fmod(c,1.0) ifadesi c nin 1.0 göre float modu yani virgülden sonraki kısmı oluyor.
     
    if(fmod(c,1.0)==0.0)
    printf("\n\n TOTAL COST=%d TRY",(int)c);
    else
    printf("\n\n TOTAL COST=%5.2f TRY",c);
  • fmod() fonksiyonuna baktım; double fmod( double a, double b ) : a sayısının b sayısına bölümünden kalanı verir.


    Evet calısti! cok iyi düşünmüssünüz, yine cozdunuz problemimi... cok tesekkur ederim :)
  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.