Napisz program, który zmiennej typu całkowitego przypisze wartość największej liczby całkowitej tego typu, a następnie doda do tej zmiennej 1 i wypisze jej wartość. Wykonaj ćwiczenia:

a)typu reprezentującego liczby całkowitego bez znaku

b)typu reprezentującego liczby całkowitego ze znakiem

C++


Odpowiedź :

Uwaga: przed 9:34, 9 lutego 2022 r. załączniki 3. i 4. miały po jednej literówce.

Odpowiedź

  • Pierwszy załącznik zawiera program dla liczb całkowitych bez znaku (unsigned). Natomiast drugi zawiera wynik działania tego programu.

  • Trzeci załącznik zawiera program dla liczb całkowitych ze znakiem (signed). A czwarty wynik działania tego programu.

Wyjaśnienie

Programy działają pod  Code::Blocks,  Dev-C++  oraz  Visual Studio.

Inaczej napisane programy działające pod Linuxem, onlinegdb, programiz, replit itd. i dodatkowo z komentarzem znajdziesz w pytaniu brainly.pl/zadanie/21437579

#include <iostream>  jest konieczne aby zadziałało  printf().  Uznałam, że użycie  printf()  jest dużo przejrzystsze. A dodatkowo kod źródłowy jest mniej rozlazły.

Wcale nie jest przypadkiem, że wyniki dla typów  long  oraz  unsigned long  są inne w tym rozwiązaniu i w  brainly.pl/zadanie/21437579  ! ! !

Otóż standard C++ wcale dokładnie nie definiuje ile bajtów mają zajmować zmienne typów całkowitych... Przy tym jest tak, iż wyniki mogą być różne nawet jeśli został użyty ten sam kompilator, co najłatwiej porównać używając  g++.  Otóż  Code::Blocks  oraz  Dev-C++  używają  g++,  tylko że robią to inaczej (inne środowisko). Skomplikowane oraz trudne? Tak! Dlatego najlepiej w ogóle nie używać typów  long  oraz  unsigned long,  a ograniczyć się do typów  int  oraz  long long  (oraz ich wersji bez znaku).

Zobacz obrazek 0AB
Zobacz obrazek 0AB
Zobacz obrazek 0AB
Zobacz obrazek 0AB