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

Program do przeliczania

VPS Starter Arubacloud
0 głosów
1,751 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ź 1,068 wizyt
0 głosów
0 odpowiedzi 376 wizyt
0 głosów
2 odpowiedzi 503 wizyt
pytanie zadane 15 maja 2020 w JavaScript przez Kubunio Początkujący (270 p.)

92,845 zapytań

141,784 odpowiedzi

320,859 komentarzy

62,177 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.

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...