Rezolvare completă PbInfo #2274 Limite

Cerința

Se dau n numere naturale. Afișați tipul de date C++ minim ca număr de octeți permite memorarea fiecărui număr. Dacă un număr încape și în tipul cu semn și în tipul fără semn, se afișează tipul cu semn.

Date de intrare

Fișierul de intrare limite.in conține numărul n, iar apoi n numere naturale, separate prin spații.

Date de ieșire

Fișierul de ieșire limite.out va conține n șiruri de caractere, pe n rânduri, reprezentând tipurile de date cerute, dintre char, unsigned char, short, unsigned short, int, unsigned int, long long, unsigned long long.

Restricții și precizări

  • 1 ≤ n ≤ 10000
  • cele n numere citite vor fi mai mici sau egale cu 18446744073709551615

Exemplu

limite.in

5
10 18446744073709551615 32767 127 65535

limite.out

char
unsigned long long
short
char
unsigned short

Cum e corect?

cout < "As la info"; cout << "As la info"; cout >> "As la info";

Felicitări! Poți mai mult?

Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.

Greșit, dar nu-i bai!

Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.

Rezolvare

Iată rezolvarea de 100 de puncte pentru problema Limite :

#include <fstream>
#include <limits.h>

using namespace std;
ifstream cin("limite.in");
ofstream cout("limite.out");
void type(unsigned long long int x){
    if(x <= SCHAR_MAX)
        cout << "char";
    else if(x <= UCHAR_MAX)
        cout << "unsigned char";
    else if(x <= SHRT_MAX)
        cout << "short";
    else if(x <= USHRT_MAX)
        cout << "unsigned short";
    else if(x <= INT_MAX)
        cout << "int";
    else if(x <= UINT_MAX)
        cout << "unsigned int";
    else if(x <= LONG_LONG_MAX)
        cout << "long long";
    else cout << "unsigned long long";
    cout << '\n';
}
int main()
{
    unsigned long long n,i,x;
    cin >> n;
    for(i = 1 ; i <= n ; ++i){
        cin >> x;
        type(x);
    }
    return 0;
}

Atenție

Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa Adresa de email.

Rezolvarea problemei #2274 Limite

Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #2274 Limite de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.

Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!