• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Float (mnożenie liczby zmiennoprzecinkowej przez jej dziesięciokrotność)

Object Storage Arubacloud
0 głosów
428 wizyt
pytanie zadane 19 października 2019 w C i C++ przez Hubertius Bywalec (2,970 p.)

Hej :)

Polecenie w zadaniu wyglądało tak:"Napisz program wczytujący od użytkownika jedną wartość zmiennoprzecinkową, za pomocą funkcji scanf. Wpisaną wartość wyświetl na ekranie. Wyświetl w nowej linii również jej dziesięciokrotność."

Napisałem kod:

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



int main(int argc, char *argv[]) 
{
	float liczba,dziesieciokrotnosc=10.0;
	printf("Podaj liczbe zmiennoprzecinkowa:\n");
	scanf("%f,&liczba");
	printf("Dziesieciokrotnosc twojej liczby to:%d",(float)liczba*(float)dziesieciokrotnosc);
	
	return 0;
}

Lecz po odpaleniu konsoli wyświetla się taki oto efekt:

"Podaj liczbe zmiennoprzecinkowa:

 (liczba zmiennoprzecinkowa podana przez uzytkownika)

Dziesieciokrotnosc twojej liczy to:0"

I tu się pojawia pytanie co jest nie tak z tym kodem?

1 odpowiedź

0 głosów
odpowiedź 19 października 2019 przez Michałełe Nałogowiec (25,600 p.)
wybrane 19 października 2019 przez Hubertius
 
Najlepsza

Witam

    float liczba,dziesieciokrotnosc = 10.0;
    printf("Podaj liczbe zmiennoprzecinkowa:\n");
    scanf("%f",&liczba);
    printf("Dziesieciokrotnosc twojej liczby to:%f", liczba*dziesieciokrotnosc);

Muszisz jak wyżej w scanf zmienić na liczbę zmiennoprzecinkową. To samo w printf ( tzn. jak dasz tam %d to utnie co jest po przecinku)

komentarz 19 października 2019 przez Hubertius Bywalec (2,970 p.)

Znaczy się nie wiem czy do końca zrozumiałem. Obydwie liczby zadeklarowałem jako typ zmiennych "float-owskich".W scanf-ie z liczbą kazałem,by liczba podawana przez użytkownika była jako float (%f), aby była liczbą zmiennoprzecinkową, a nie jako liczbę całkowitą (%d). Widzę, że w printf-ie za bardzo się pośpieszyłem i walnąłem byka i go już poprawiłem.

scanf("%f,&liczba");
printf("Dziesieciokrotnosc twojej liczby to:%f",(float)liczba*(float)dziesieciokrotnosc);

Ale i tak wciąż podaje wynik po przemnożeniu jako zero.  :/

komentarz 19 października 2019 przez Hubertius Bywalec (2,970 p.)

@Michałełe Dobra, już wiem co było źle

W

scanf("%f,&liczba");

nie powinno być tak, a raczej:

scanf("%f",&liczba);

Teraz już poprawnie przemnaża.  :)

komentarz 19 października 2019 przez Michałełe Nałogowiec (25,600 p.)

W scanf jako pierwszy argument dajesz tekst jaki chcesz, a w drugim argumencie zmienne jakich użyłeś. Czyli:

scanf("%f",&liczba);

a nie

scanf("%f,&liczba");

A w

printf("Dziesieciokrotnosc twojej liczby to:%f",(float)liczba*(float)dziesieciokrotnosc);

Nie musisz już "castować" tych zmiennych na float, bo one są już zdefiniowane jako float.

Podobne pytania

–3 głosów
0 odpowiedzi 281 wizyt
pytanie zadane 25 sierpnia 2018 w C i C++ przez Bohdan Filas Nowicjusz (120 p.)
0 głosów
1 odpowiedź 906 wizyt
pytanie zadane 13 października 2018 w C i C++ przez Świeżak01 Nowicjusz (180 p.)
0 głosów
1 odpowiedź 428 wizyt
pytanie zadane 28 stycznia 2018 w Matematyka, fizyka, logika przez must Bywalec (2,980 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...