Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Pytanie]Kalkulator... ;/


Wierny

Rekomendowane odpowiedzi

Opublikowano

Witam. Otóź mam taki problem, że chciałem zrobić kalkulator który oblicza 3 iloczyny liczb. Nie wiem co zrobiłem źle ale oblicza mi tylko 2 ;/ :

 

#include <iostream>
#include <conio.h>

void main()
{
int nLiczba1;
std::cout << "Podaj pierwsza liczbe: ";
std::cin >> nLiczba1;

int nLiczba2;
std::cout << "Podaj druga liczbe: ";
std::cin >> nLiczba2;

int nLiczba3;
std::cout << "Podaj trzecia liczbe: ";
std::cin >> nLiczba3;

int nWynik = nLiczba1 + nLiczba2; + nLiczba3;
std::cout << nLiczba1 << " + " << nLiczba2 << " + " << nLiczba3 << " + " << "=" << nWynik
getch();
}

 

Co jest w tym kodzie nie tak? o.O

2dhww8h.png


Opublikowano

Do iloczynu jest ten znak:

*

Przy przypisywaniu wartości nWynik niepotrzebnie dałeś średnik. Średnik dajesz tam, gdzie jest koniec instrukcji (mniej więcej) a nie w środku działania.

Smutek to skutek chęci w kontekście skutku

raczej niefrasobliwej wzglądu o treści zgryźliwej

ma postać walca co jeździ nam po palcach.

Opublikowano

Witam. Otóź mam taki problem, że chciałem zrobić kalkulator który oblicza 3 iloczyny liczb. Nie wiem co zrobiłem źle ale oblicza mi tylko 2 ;/ :

 

#include <iostream>
#include <conio.h>

void main()
{
int nLiczba1;
std::cout << "Podaj pierwsza liczbe: ";
std::cin >> nLiczba1;

int nLiczba2;
std::cout << "Podaj druga liczbe: ";
std::cin >> nLiczba2;

int nLiczba3;
std::cout << "Podaj trzecia liczbe: ";
std::cin >> nLiczba3;

int nWynik = nLiczba1 + nLiczba2; + nLiczba3;
std::cout << nLiczba1 << " + " << nLiczba2 << " + " << nLiczba3 << " + " << "=" << nWynik
getch();
}

 

Co jest w tym kodzie nie tak? o.O

 

 

 

Akurat jestem nie dawno po programowaniu, to widzę że masz trochę lekkie nie ogarnięcie. Nie wiem po co na te czasy używasz "std::" są od tego biblioteki, includujesz je i masz z głowy i piszesz samo cout..

 

Poprawnie kod powinien wyglądać tak:

 

#include <iostream>
#include <conio.h>

main()
{
 int nLiczba1;
 std::cout << "Podaj pierwsza liczbe: ";
 std::cin >> nLiczba1;

 int nLiczba2;
 std::cout << "Podaj druga liczbe: ";
 std::cin >> nLiczba2;

 int nLiczba3;
 std::cout << "Podaj trzecia liczbe: ";
 std::cin >> nLiczba3;

 int nWynik = nLiczba1 * nLiczba2 * nLiczba3;
 std::cout << nLiczba1 << " * " << nLiczba2 << " * " << nLiczba3 << " = " << nWynik;
 getch();
}

 

W nWynik - miałeś za dużo średników. Po drugie nie mogło Ci obliczać, gdyż z twoim kodem, wyświetlało Ci tylko pierwszą zaimplementowaną liczbę. Po trzecie "+" to jest suma nie iloczyn, więc znak " * ", będzie bardziej odpowiadał twojemu celowie. Pozdrawiam :)

 

// ps. Nie wiem jak u Ciebie, ale u mnie w Dev C++ nie łapie void main, więc zrobiłem Ci na main :).

Opublikowano

Dzięki Kenwood ;) Wczoraj dopiero zaczełem moją przygodę z C++ i robie to na IDE Visual C++ i jeszcze mam prawo się pomylić :D

2dhww8h.png


Opublikowano

Dzięki Kenwood ;) Wczoraj dopiero zaczełem moją przygodę z C++ i robie to na IDE Visual C++ i jeszcze mam prawo się pomylić :D

 

Polecam się na przyszłość. Jeżeli czegoś nie będziesz wiedział pisz PW :). Pozdrawiam :)

Opublikowano
// ps. Nie wiem jak u Ciebie, ale u mnie w Dev C++ nie łapie void main, więc zrobiłem Ci na main :).

to zmień IDE bo powinno być int main()

 

Nie wiem po co na te czasy używasz "std::" są od tego biblioteki, includujesz je i masz z głowy i piszesz samo cout..

herezje

Weteran
Opublikowano

#include <iostream>
#include <conio.h>

void main()
{
int nLiczba1;
std::cout << "Podaj pierwsza liczbe: ";
std::cin >> nLiczba1;

int nLiczba2;
std::cout << "Podaj druga liczbe: ";
std::cin >> nLiczba2;

int nLiczba3;
std::cout << "Podaj trzecia liczbe: ";
std::cin >> nLiczba3;

int nWynik = nLiczba1 + nLiczba2; + nLiczba3;
std::cout << nLiczba1 << " + " << nLiczba2 << " + " << nLiczba3 << " + " << "=" << nWynik
getch();
}

Prawdopodobnie chodzi ci o sumę, a nie o iloczyn.

 

 int nWynik = nLiczba1 + nLiczba2; + nLiczba3;

wyrzuć ten średnik przed + nLiczba3, tak jak ktoś tam na górze napisał, i powinno być ok.

 

Tylko teraz pytanie; dlaczego kompilator nie zareagował na ten błąd? Przecież operator + przyjmuję dwa argumenty.

c++ jest dziwny.

Opublikowano

Prawdopodobnie chodzi ci o sumę, a nie o iloczyn.

 

 int nWynik = nLiczba1 + nLiczba2; + nLiczba3;

wyrzuć ten średnik przed + nLiczba3, tak jak ktoś tam na górze napisał, i powinno być ok.

 

Tylko teraz pytanie; dlaczego kompilator nie zareagował na ten błąd? Przecież operator + przyjmuję dwa argumenty.

c++ jest dziwny.

 

Skanowałem, kod 2 razy i C++ nie zareogował. Wręcz przeciwnie pisało, że jest wszystko pomyślnie zrobione.

2dhww8h.png


Opublikowano

Akurat jestem nie dawno po programowaniu, to widzę że masz trochę lekkie nie ogarnięcie. Nie wiem po co na te czasy używasz "std::" są od tego biblioteki, includujesz je i masz z głowy i piszesz samo cout..

 

Aż tak bardzo nie znam c++ ale wiem to i owo. std::cout itp. stosuje się gdy nie zarezerwowaliśmy przestrzeni std.

using namespace std;

A gdy taka jest to można pominąć std:: przed każdym elementem. Cin, cout itp.

Opublikowano

Po pierwsze - iloczyn to mnożenie, czyli znak '*'.

Po drugie - 3 iloczyny czy iloczyn z 3ech liczb? To jest różnica.

Po trzecie - problem jest raczej rozwiązany, średnik w złym miejscu. Też się dziwię, czemu kompilator uznaje to +.

 

@DOWN: ok, może masz rację.

W takim razie jest potrzebny jak dziura w moście ;]


Pomagam w projektach dotyczących programowania (C++/C/Java/C#/inne). Jak masz jakiś problem, napisz do mnie, wspólnie poszukamy rozwiązania ;).

Opublikowano
Tylko teraz pytanie; dlaczego kompilator nie zareagował na ten błąd? Przecież operator + przyjmuję dwa argumenty.

teraz tylko pytanie co jednak w takim razie zrobił, jak ten kod działał?

rozgryzione

zapis

a + b; +c;

jest równoważny z

a + b; 1*c;

 

tak samo jak

 

a + b; -c;

jest równoważny z

a + b; -1*c;

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...