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

Konwertowanie zmiennych

Hosting forpsi easy 1 pln
0 głosów
594 wizyt
pytanie zadane 13 sierpnia 2018 w C i C++ przez Programmingc100 Bywalec (2,620 p.)
#include <iostream>
#include <windows.h>


int main()
{
    using namespace std;
long long world;
long long country;
 double x;
cout<<"Wpisz popluacje swiata"<<endl;
cin>>world;
cout<<"Wpisz populacje wybranego kraju"<<endl;
cin>>country;

x = country/world*100;

cout<<"Populacja kraju stanowi "<<x<<" populacji swiata";

return 0;
}

"Napisz porgram ,który poprosi użytkownika o wpisanie bieżącej  liczebności populacji świata i bieżącej liczebności populacji Polski i zapisze te dane w zmiennych typu long long>Potem program powinien obliczyć i wypisać procent , jaki populacja Polski stanowi." 

Kilka stron wcześniej czytałem że jeśli operand jest typu double,drugi jest konwertowany na typ double i nie wiem dlaczego ucina część ułamkową i konwertuje na typ long long. Próbowałem konwertować po obliczeniu ale też nic z tego

1 odpowiedź

+1 głos
odpowiedź 13 sierpnia 2018 przez niezalogowany
wybrane 13 sierpnia 2018 przez Programmingc100
 
Najlepsza
x = static_cast<double>(country)/world*100;
komentarz 13 sierpnia 2018 przez Programmingc100 Bywalec (2,620 p.)
A dlaczego taka forma nie działa ? : static_cast<double> (x)
komentarz 13 sierpnia 2018 przez niezalogowany
edycja 13 sierpnia 2018

Jak to nie działa? Możesz podać więcej szczegółów? W ten sposób się nie da. Dopiero wartość country można rzutować z int na double. W przypadku pozostałych licz kompilator się domyśli co zrobić.

komentarz 13 sierpnia 2018 przez Programmingc100 Bywalec (2,620 p.)
(double) country;
x = country/world*

a dlaczego tak nie mogę zrobić. Zastnawiam się dlaczego nie mogłem przekonwertować od razu wartości x 

komentarz 13 sierpnia 2018 przez Programmingc100 Bywalec (2,620 p.)
cout<<"Populacja kraju stanowi "<<double(country)/double(world)*100<<" populacji swiata";

Jeszcze zrobiłem tak 

komentarz 13 sierpnia 2018 przez niezalogowany

Masz 3 sposoby rzutowanie z C++(static_cast), rzutowanie funkcyjne(to co najpisałeś) i pochodzące jeszcze z języka C:

x = (double)country/world*100;

Nie można w inny sposób.

komentarz 14 sierpnia 2018 przez Programmingc100 Bywalec (2,620 p.)
cout<<"Populacja kraju stanowi "<<double(country/world)<<" populacji swiata";


A takie coś dlaczego nie działa?

komentarz 14 sierpnia 2018 przez niezalogowany
Najpierw wykonane zostanie dzielenie całkowite (czyli 5 / 2 = 2) i dopiero później rzutowanie.
komentarz 14 sierpnia 2018 przez Programmingc100 Bywalec (2,620 p.)

Rozumiem,dziękismiley

Podobne pytania

0 głosów
1 odpowiedź 110 wizyt
pytanie zadane 27 lipca 2017 w C# przez Stami Gaduła (3,790 p.)
0 głosów
1 odpowiedź 349 wizyt
pytanie zadane 15 sierpnia 2016 w C i C++ przez robertwe Gaduła (4,620 p.)
0 głosów
1 odpowiedź 388 wizyt
pytanie zadane 21 lutego 2019 w C i C++ przez polek122333 Nowicjusz (150 p.)

92,092 zapytań

140,751 odpowiedzi

317,718 komentarzy

61,409 pasjonatów

Advent of Code 2023

Top 15 użytkowników

  1. 0p. - 13NOONE37
  2. 0p. - Kacper Bogucki
  3. 0p. - Michal Drewniak
  4. 0p. - Radosław Kawka
  5. 0p. - CC PL
  6. 0p. - Takor0
  7. 0p. - Voribel
  8. 0p. - Mateusz Bogdan
  9. 0p. - Adam Śpiewak
  10. 0p. - overcq
  11. 0p. - Arkadiusz Olczak
  12. 0p. - TheLukaszNs
  13. 0p. - Mateusz Sobala
  14. 0p. - Mawrok
  15. 0p. - Innro
Szczegóły i pełne wyniki

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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia w koszyku, uzyskując rabat aż -50% (jeszcze tylko dziś 30.11 z okazji Black Week, a potem będzie to 30%) na bilety w wersji "Standard"! Więcej informacji na temat akademii znajdziecie tutaj. Dziękujemy Sekurakowi za tak fajną zniżkę dla 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 15% 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!

...