https://petlja.org/BubbleBee/r/problemi/Zbirka/intervali

Kod:

 #include <bits/stdc++.h>    
int main()
    {
        double x1,x2,x3,x4,d,d1;
        scanf("%lf%lf%lf%lf",&x1,&x2,&x3,&x4);
        printf("%.2f %.2f\n",std::min(x1,x3),std::max(x2,x4));
        if(std::max(x1,x3)<std::min(x2,x4))
        {
            printf("%.2f %.2f\n",std::max(x1,x3),std::min(x2,x4));
            d1=std::min(x2,x4)-std::max(x1,x3);
        }else
        {
            std::cout << "presek ne postoji\n";
            d1=0;
        }
        d=x2-x1+x4-x3-d1;
        printf("%.2f",d);
        return 0;
    }

Opis problema:
Ovo je moje rešenje, medjutim netačno je.
Problem je što u sedmom test primeru je traženi output 7 a moj program izbacuje 7.00. Da li moguće da printf zaokružuje na dve decimale samo u slučaju kada broj nije ceo?
Link ka zadatku:
https://petlja.org/BubbleBee/r/problemi/Zbirka/intervali

Ovaj tvoj problem bih ja resio na sledeci nacin,
u mom primeru tvoju promenjivu ‘d’ (izlaz programa) predstavlja moja promenjiva ‘prosek’
slika

1 Like