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

Konwertowanie zmiennych

Object Storage Arubacloud
0 głosów
683 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ź 117 wizyt
pytanie zadane 27 lipca 2017 w C# przez Stami Gaduła (3,790 p.)
0 głosów
1 odpowiedź 377 wizyt
pytanie zadane 15 sierpnia 2016 w C i C++ przez robertwe Gaduła (4,620 p.)
0 głosów
1 odpowiedź 488 wizyt
pytanie zadane 21 lutego 2019 w C i C++ przez polek122333 Nowicjusz (150 p.)

92,568 zapytań

141,424 odpowiedzi

319,634 komentarzy

61,956 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!

...