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

Kolejność wykonywania działań C

Aruba Cloud PRO i VPS, Openstack, VMWare, MS Hyper-V
0 głosów
1,375 wizyt
pytanie zadane 27 listopada 2018 w C i C++ przez niezalogowany
Witam, mam dane równanie ( 2 * 2 - 1 / 2 * 4 - 3 + 3 - 2 * 4 - 3 / 2 * 3 ) program zwraca wynik równy -7 i nie jestem w stanie pojąć w jaki sposób mam to policzyć, żeby otrzymać właśnie taki wynik. Byłbym wdzięczny gdyby ktoś mógł rozpisać co po kolei robi. Jakiej kolejności działań używa. Z góry dziękuję.

2 odpowiedzi

+1 głos
odpowiedź 27 listopada 2018 przez niezalogowany
edycja 27 listopada 2018

Priorytety operatorów - czyli najpierw wykonaj mnożenie i dzielenie. Dodatkowo warto wiedzieć jak wygląda dzielenie liczb całkowitych:

1 / 2 * 4 = 0 * 4 = 0
4 * 1 / 2 = 4 / 2 = 2
komentarz 27 listopada 2018 przez niezalogowany
Czyli według Twojego przykładu mam wykonać najpierw dzielenie tak?
komentarz 27 listopada 2018 przez niezalogowany
Mnożenie i dzielenie są równoważne, więc jeżeli nie ma nawiasów, lub innej operacji o wyższym priorytecie to wykonujesz pierwsze które wystąpi. W równaniu które masz wszędzie jest akurat pierwsze dzielenie. Dodałem Ci nowy przykład.
komentarz 27 listopada 2018 przez niezalogowany
Okej w takim razie z tego wynika, że to: 1 / 2 * 4 = 0 * 4 = 0 jest błędne.

2 * 2 - 1 / 2 * 4 - 3 + 3 - 2 * 4 - 3 / 2 * 3

4 - 1 / 2 * 4 - 3 + 3 - 8 - 3 / 2 * 3

4 - 0 * 4 - 3 + 3 - 8 - 1 * 3

4 - 3 + 3 - 8 - 3

1 + 3 - 8 - 3

-4 - 3

-7
komentarz 27 listopada 2018 przez niezalogowany
Gdzie jest błędne?
komentarz 27 listopada 2018 przez niezalogowany
Wnioskuje z tego, że gdybym wykorzystał to, że 0 * 4 = 4 to byłby błędny wynik.
komentarz 27 listopada 2018 przez niezalogowany

Ciii.... Tam nic takiego już nie ma devil

0 głosów
odpowiedź 27 listopada 2018 przez Piotr Batko Stary wyjadacz (13,190 p.)

U mnie te działania wykonują się w kolejności:

3 / 2 = 1
1 * 3 = 3
2 * 4 = 8
1 / 2 = 0
0 * 4 = 0
2 * 2 = 4
4 - 0 = 4
4 - 3 = 1
1 + 3 = 4
4 - 8 = -4
-4 - 3 = -7
-7

A poniżej kodzik, który mi taki wydruk wygenerował :)

https://onlinegdb.com/rJdzECqAQ

Podobne pytania

0 głosów
0 odpowiedzi 284 wizyt
0 głosów
1 odpowiedź 198 wizyt
0 głosów
1 odpowiedź 253 wizyt

91,824 zapytań

140,490 odpowiedzi

316,950 komentarzy

61,159 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...