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

Program do przeliczania

Object Storage Arubacloud
0 głosów
1,612 wizyt
pytanie zadane 8 lutego 2016 w C i C++ przez KonDZIKs Bywalec (2,770 p.)

Witam postanowiłem ,że zrobie sobie coś z przeliczania niby wydaje się banalne a jednak utknąłem.
Program polega na przeliczaniu z kilogramów na gramy i na odwrót. Kilogramy na gramy zrobiłem lecz mam problem ,żeby zrobić odwrotnie.
Kod:

#include <iostream>

using namespace std;

int kg;
int g;

int main()
{
    cout << "Przeliczanie kilogramow na gramy" << endl;
    cout << "Podaj kilogram:";
    cin>>kg;

    cout <<kg<<" kilogram to "<<kg*1000<<" gram."<<endl;

    cout << "Podaj gramy:";
    cin>>g;

    cout <<g<<" gramow to "<<g*0,001<<" kilogramow."<<endl;


    return 0;
}

 

Błąd występuje w 19 linii.

Dziękuje za pomoc.
Pozdrawiam :)

2 odpowiedzi

+1 głos
odpowiedź 8 lutego 2016 przez jpacanowski VIP (101,940 p.)
wybrane 8 lutego 2016 przez KonDZIKs
 
Najlepsza

Tak jest poprawnie:

g*0.001
komentarz 8 lutego 2016 przez KonDZIKs Bywalec (2,770 p.)
Dziękuje :)
Taki banał a wszystko źle... :D
Mam jeszcze pytanie czy ten kod dało by się rozpisać jedno pod drugim czy tylko tak w ciągu w sensie:
cout <<"kilogramow to";

cin >>kg;
komentarz 8 lutego 2016 przez jpacanowski VIP (101,940 p.)

Np. tak:

cout << kg;
cout << " kilogram to ";
cout << kg*1000;
cout << " gram.";
cout << endl;

o to chodziło?

komentarz 8 lutego 2016 przez jpacanowski VIP (101,940 p.)

Dlatego czasami wolę printf()

printf("%d kilogram to %d gram.", kg, kg*1000);
komentarz 8 lutego 2016 przez KonDZIKs Bywalec (2,770 p.)
edycja 8 lutego 2016 przez KonDZIKs
Tak o to. :)
Dziękuje :)

Czyli jakby to rozpisać to
cout <<kg; to ma wypisać ten kilogram który każemy przeliczyć? :)
komentarz 8 lutego 2016 przez Sedi Stary wyjadacz (10,200 p.)
edycja 9 lutego 2016 przez Sedi

@ Konrad Kołak

Nie jestem pewien, czy dobrze rozumiem, ale w cout zazwyczaj nie dokonuje się żadnych obliczeń, więc jeśli napiszesz :

int kg=10;
std::cout<<kg*10<<'\n';
std::cout<<"Hahaha nadal wynoszę 10:"<<kg<<'\n';

to nie zmienilbym wartosci kg, gdyż std::cout jest zwykłą funkcją, którą jeśli byś się uparł, mógłbyś napisać sam. Do std::cout możesz posyłać też wskaźniki, które nie zmienią wartości. Czyli jeśli napisałbyś:

int *wsk;
    int zmienna=10;
    wsk=&zmienna;
    std::cout<<(*wsk)*10<<'\n';

    std::cout<<"Hahaha, nadal wynosze 10: "<<*wsk<<'\n';

to nadal miałbyś 10. Jedynym wyjątkiem od tego, jest użycie operatora ++. Tzn:

std::cout<<(*wsk)++<<"Hmm, teraz wynosze 11..."<< "A poprzednio 10... Jak to mozliwe ?: "<<*wsk<<'\n';

Jak to jest możliwe zostawiam dla Ciebie :) - Pozdrawiam :)

 

komentarz 9 lutego 2016 przez KonDZIKs Bywalec (2,770 p.)
Troszkę źle napisałem :D

Potem postaram sie rozwiązać to co mi podałaś. :) :D Ps. Dziękuje za motywacje :D I przykład :D

Chodziło mi o to ,że te cout << kg; To jest liczba która my mamy wpisać załóżmy 2  i potem te 2 zostanie zrobione jak napisane jest w kodzie czyli kg*1000 i da nam to 2000 gram.

Nwm czy dobrze napisałem o co mi chodzi :D
komentarz 9 lutego 2016 przez Sedi Stary wyjadacz (10,200 p.)

Napisałem właśnie o tym :)

Cout służy tylko do wyświetlania. Na zmiennej nie zostaną przeprowadzone żadne modyfikacje. Gdybyś chciał, żeby zmienna miała teraz inną wartość, niż tą którą wpiszesz do zmiennej, musiałbyś napisać takie coś:

int zmienna=1;
std::cout<<"Podaj zmienna: "<<'\n';
std::cin>>zmienna;
std::cout<<"Zmienna wynosi: "<<zmienna<<'\n';
std::cout<<"Teraz ladnie i grzecznie zmieniam w cout: "<<zmienna*1000<<'\n'<<"Zmienna jednak nadal wynosi: "<<zmienna<<'\n';
zmienna=zmienna*1000;
std::cout<<"Teraz jednak wynosi: "<<zmienna<<'\n';
std::cout<<"Jak to mozliwe ?"<<'\n';

Zamiast pisać zmienna=zmienna*1000, możesz napisać :

zmienna*=1000;

To jest to samo co wyżej, tylko krócej :) - Po co palce tracić na pisanie dłuższej wersji?:)

Przypis: Pamiętaj jednak, żeby używać tego tylko do krótkich wersji. Gdybyś napisał:

zmienna*=1000+1;

Nie różniłoby się niczym od tego zapisu:

zmienna=zmienna*(1000+1);

Więc z tym ostrożnie :) Zostało to stworzone do krótkich operacji :)

Pozdrawiam :)

komentarz 9 lutego 2016 przez jpacanowski VIP (101,940 p.)

No tak, ale on chce tylko wyświetlić na ekranie ile to jest gram. Nie chce wyniku działania (kg*1000) nigdzie zapisywać do zmiennej :D

komentarz 9 lutego 2016 przez Sedi Stary wyjadacz (10,200 p.)
Przeczytałem to drugi raz i ...chyba muszę iść spać :) Dobrze mi to zrobi :)
0 głosów
odpowiedź 8 lutego 2016 przez secsec Mądrala (7,250 p.)

cout <<g<<" gramow to "<<g*0.001<<" kilogramow."<<endl; 
nie przecinek, a kropka. 

Podobne pytania

0 głosów
1 odpowiedź 893 wizyt
0 głosów
0 odpowiedzi 302 wizyt
0 głosów
2 odpowiedzi 461 wizyt
pytanie zadane 15 maja 2020 w JavaScript przez Kubunio Początkujący (270 p.)

92,575 zapytań

141,424 odpowiedzi

319,650 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!

...