Funkcja scanf i mnożenie liczb

0

mam takie zadanko :

Zapytać użytkownika o ilość godzin, a następnie wyświetlić podaną ilość godzin przeliczoną
kolejno na:

– minuty,
– dni (całe) + godziny,
– tygodnie (z częścią ułamkową).

Przykładowa komunikacja z użytkownikiem:

Wpisz ilosc godzin: 202
202 godziny to:
12120 minut
8 dni i 10 godzin
1.2024 tygodni

Okey tylko jak ma wyglądać mnożenie liczb - mnożenie liczby podanej przez liczbę?

Z góry dzięki :)

2

przeczytaj jakis kurs... sadze ze w pierwszych dwoch rozdzialach powinno to byc.

3

Wczytujesz, np. do zmiennej hours. Potem wyświetlasz.

Minuty - trywialne:

printf("minut: %d\n", 60 * hours);

Dni i godziny - polecam modulo (%), a do tygodni zamień ilość godzin na liczbę zmiennoprzecinkową. Tydzień ma 168 godzin.

0

Dzięki kq :) źle wpisywałem. A jak mogę zamienić na zmiennoprzecinkową?

3

Rzutuj na double, albo skorzystaj z niejawnej konwersji i wykonaj działanie gdzie jednym z operandów będzie double:

double weeks = hours / 168.0;
0

No nie wiem do końca jak, double jeszcze nie miałem, tylko nie wiem nadal jak te tygodnie.

#include <cstdio>
int main() {

int h;
       printf ("Wpisz ilosc godzin: ");
       scanf ("%d",&h);
       printf ("%d godziny to: \n",h);
       printf ("%d minut\n",h*60);
       printf ("%d dni i %d godzin\n",h/24,h%24);
       double w=h/168.0;
       printf ("%f tygodni",w/168);

       return 0;
}
2

168.0 i 168 to zupełnie inne typy.

0

Napisz jak ma się te tygodnie wyświetlać powiedzmy dla h=247

0

Jak w kalkulatorze : 1,4702

2

W ostatnim przedstawionym kodzie dwa razy dzielisz przez 168.

0

Okey, lepiej, ale drukuje mi teraz 1.00000 tygodni

0

Okey koniec tematu dziękuję wam :)

0

Program prosi użytkownika o wpisanie liczby zmiennoprzecinkowej. Liczba ta to pewna prędkość
podana w m/s. Program przelicza prędkość na:
– pełne mile morskie na godzinę (inaczej: węzły) i (zaokrąglone) kable na godzinę,
– stopy na kwadrans.
Dla przypomnienia:
1Mm=1852m
1Mm=10 kabli
1 stopa (angielska) = 12 cali
1 cal = 2.54 cm
Przykładowa komunikacja z użytkownikiem:

Wpisz predkosc w m/s:10.5
10.50 m/s to 20 Mm i 4 kabli/godzine lub 31003.9370 stop/kwadrans.

mam tak :

#include <cstdio>

int main () {
    float a;
    printf ("Wpisz predkosc w m/s:");
    scanf ("%f",&a);
    printf ("\n%.2f m/s ",a);
    double b=a*3600;
    printf ("to %.f Mm i %??? kabli na godzine ",b/=1852);
    double d=a*900;
    printf ("lub %3.4f stop/kwadrans.",d/0.3048);
    return 0;
}

Wszystko okey tylko co wpisać w msc ??? żeby mi wyświetlało 1liczbe(tą po przecinku) tylko??

2

http://en.cppreference.com/w/c/io/fprintf

printf("%.1f", 1.23456);
0

to co podałeś daje mi 1.2 a potrzebuję tylko 4 tak jak w przykładzie.

0

czytam co mi wyslales i nie widze swojego problemu

1

Chciałeś w miejscu "???" coś, aby ci wyświetlało jedną liczbę po przecinku. Dostałeś odpowiedź. Chyba, że msc miało znaczyć "miesiąc". Nigdy nie rozumiałem potrzeby użycia niezrozumiałych skrótów na forach, gdzie masz czas przemyśleć i sprawdzić swoją wypowiedź przed jej wysłaniem.

0

Wpisuję tak:

#include <cstdio>

int main () {
    float a;
    printf ("Wpisz predkosc w m/s:");
    scanf ("%f",&a);
    printf ("\n%.2f m/s ",a);
    double b=a*3600/1852;
    printf ("to %.f Mm i %.1f kabli na godzine ",b,b);
    double d=a*900/0.3048;
    printf ("lub %3.4f stop/kwadrans.",d);
    return 0;
}

A to mi się wyświetla:

Wpisz predkosc w m/s:10.5
10.50 m/s to 20 Mm i 20.4 kabli/godzine lub 31003.9370 stop/kwadrans.

a tu ma być 4 a nie 20.4 ! :(

1
printf ("to %.f Mm i %.0f kabli na godzine ",b,fmod(b,1.0)*10);

1 użytkowników online, w tym zalogowanych: 0, gości: 1