[c言語]PATプログラミング問題intとlongの違いを引き出す


タイトルの説明
    [-2 31  , 2 31  ]  3   A、B C,   A+B    C。

説明を入力:
   1      T(<=10),        。    T     ,     ,    A、B C。        。

出力の説明:
       ,      “Case #X: true”  A+B>C,    “Case #X: false”,  X        ( 1  )。

入力例:
4

1 2 3

2 3 4

2147483647 0 2147483646

0 -2147483648 -2147483647

出力例:
Case #1: false

Case #2: true

Case #3: true

Case #4: false

#include<iostream>
using namespace std;

int main()
{
    int n;
    cin>>n;
    
    long a[10];
    long b[10];
    long c[10];
    
    int i;
    for(i=0;i<n;++i)
	{
        cin>>a[i]>>b[i]>>c[i];
    }
    
    for(i=0;i<n;++i)
	{
        if(a[i] + b[i] > c[i])
            cout<<"Case #"<<i+1<<": true"<<endl;
        else
            cout<<"Case #"<<i+1<<": false"<<endl;
    }
    return 0;
}

あなたがタイプをintに える 、OJは いを して、、、intとlongはすべて4バイトなのに、longで いなくて、intに えて いがありますか??intとlongの いは ですか?

<<c++Primer>>:
 short  16 ;
 int   short   ;
 long  32 ,    int   


   
   
   
   
を します.
16ビットシステム/バイト
32ビットシステム/バイト
64ビットシステム/バイト
 char
1
1
1
 char*
2
4
8
 short
2
2
2
 int
2
4
4
 long
4

8
long long
8
8

intの いはワード (cpu の い)に しく、16ビットのcpuワード は16ビットであるため、intは2バイト、32ビットのcpuワード は32ビットであるため、intは4バイト、64ビットのcpuではオペレーティングシステムが32ビットしかないため、32ビットのオペレーティングシステムは32ビットのcpuに して されているため、8バイトを に する を することができず、intは4バイトにしか げることができない.

       int,  int 16 cpu       ,             ,     OJ    !
 
             ,     c++                  ,    !!
 
 1:int    4   ,     ;
 2:           ;
 3:long long  8   ,        ;