[C++/C] 演算子の種類2

sizeof演算子

int main() {
    
    int a = 1;
    int b = 0;

    cout << "short int型のサイズは" << sizeof(short int) << "バイトです。\n";
    cout << "int型のサイズは" << sizeof(int) << "バイトです。\n";
    cout << "long int型のサイズは" << sizeof(long int) << "バイトです。\n";
    cout << "float型のサイズは" << sizeof(float) << "バイトです。\n";
    cout << "double型のサイズは" << sizeof(double) << "バイトです。\n";
    cout << "long double型のサイズは" << sizeof(long double) << "バイトです。\n";
    cout << "変数aのサイズは" << sizeof(a) << "バイトです。\n";
    cout << "式a+bのサイズは" << sizeof(a+b) << "バイトです。\n";
    return 0; 
}

$ g++ -o sample sample.cpp && ./sample
short int型のサイズは2バイトです。
int型のサイズは4バイトです。
long int型のサイズは8バイトです。
float型のサイズは4バイトです。
double型のサイズは8バイトです。
long double型のサイズは16バイトです。
変数aのサイズは4バイトです。
式a+bのサイズは4バイトです。

### シフト演算子
数値を2進数で表した場合の桁を左または右に指定数だけずらす演算です。

### 型変換

int main() {
    
    int inum = 160;
    double dnum;

    cout << "身長は" << inum << "センチです。\n";
    cout << "double型の変数に代入します。\n";

    dnum = inum;

    cout << "身長は" << dnum << "センチです。\n";
    return 0; 
}
int main() {
    
    double dnum = 160.5;
    int inum;

    cout << "身長は" << dnum << "センチです。\n";
    cout << "int型の変数に代入します。\n";

    inum = dnum;

    cout << "身長は" << inum << "センチです。\n";
    return 0; 
}

$ g++ -o sample sample.cpp && ./sample
身長は160.5センチです。
int型の変数に代入します。
身長は160センチです。

### キャスト演算子
型を変換することを明示する
dnum = (double)inum;

### 異なる型同士で演算する

int main() {
    
    int d = 2;
    const double pi = 3.14;

    cout << "直径が" << d << "センチの円の\n";
    cout << "円周は" << d*pi << "センチです。\n";

    return 0; 
}

$ g++ -o sample sample.cpp && ./sample
直径が2センチの円の
円周は6.28センチです。

double とintをかけると doubleになる。

### 同じ型同士の演算

int main() {
    
    int num1 = 5;
    int num2 = 4;
    double div;

    div = num1 / num2;

    cout << "5/4は" << div << "です。\n";

    return 0; 
}

int と intの計算のため、回答は1で出力される。(double)num1/(double)num2とキャストした場合は1.25で出力される。

### practice

int main() {
    

    cout << "0-4は" << 0-4 << "です。\n";
    cout << "3.14x2は" << 3.14*2 << "です。\n";
    cout << "5/3は" << 5/3 << "です。\n";
    cout << "30/7の余りは" << 30%7 << "です。\n";
    cout << "(7*32)/5は" << (7*32)/5 << "です。\n";

    return 0; 
}

三角形の面積

int main() {
    
    double height, base;

    cout << "三角形の高さを入力してください。\n";
    cin >> height;

    cout << "三角形の底辺を入力してください。\n";
    cin >> base;

    cout << "三角形の面積は" << height*base/2 << "です。\n";

    return 0; 
}

$ g++ -o sample sample.cpp && ./sample
三角形の高さを入力してください。
3
三角形の底辺を入力してください。
5
三角形の面積は7.5です。

#include <iostream>
using namespace std;

int main() {
    
    int num1, num2, num3, num4, num5;

    cout << "科目1の点数を入力してください。\n";
    cin >> num1;

    cout << "科目2の点数を入力してください。\n";
    cin >> num2;

    cout << "科目3の点数を入力してください。\n";
    cin >> num3;

    cout << "科目4の点数を入力してください。\n";
    cin >> num4;

    cout << "科目5の点数を入力してください。\n";
    cin >> num5;

    cout << "5科目の合計点は" << num1+num2+num3+num3+num4+num5 << "です。\n";
    cout << "5科目の平均点は" << (num1+num2+num3+num3+num4+num5)/5 << "です。\n";

    return 0; 
}

合計値の場合は、int sum=0, num=0と宣言した上で、
cin >> num;
sum += num;とする方がスマート