2017年09月14日
《その27》 明示的型変換(p.157演習4-8,演習4-9)
新版明解C++入門編 p.157 演習4-8
以下の算術演算を行う各式にsizeof演算子やtypeid演算子を適用した値を表示するプログラムを作成せよ。また、実行結果に対する考察を行うこと。
int + int double + double int + double double + int
// p157_演習4-8
#include <iostream>
#include <typeinfo>
using namespace std;
int main()
{
int a = 10;
int b = 20;
double p = 30.0;
double q = 40.0;
cout << "【sizeof演算子】\n";
cout << "int + int … " << sizeof(a + b) << '\n';
cout << "double + double … " << sizeof(p + q) << '\n';
cout << "int + double … " << sizeof(a + p) << '\n';
cout << "double + int … " << sizeof(q + b) << '\n';
cout << "【typeid演算子】\n";
cout << "int + int … " << typeid(a + b).name() << '\n';
cout << "double + double … " << typeid(p + q).name() << '\n';
cout << "int + double … " << typeid(a + p).name() << '\n';
cout << "double + int … " << typeid(q + b).name() << '\n';
}
《実行結果に対する考察》 int型とdouble型が混在する算術演算では、int型オペランドがdouble型に変換されて計算が行なわれ、演算結果は double型の値になる。
新版明解C++入門編 p.157 演習4-9
三つの整数値を読み込んで、その合計と平均を表示するプログラムを作成せよ。平均は実数値で表示すること。キャスト記法を用いるもの、関数的記法を用いるもの、static_cast演算子を用いるものを作成すること。
// p157_演習4-9
#include <iostream>
using namespace std;
int main()
{
int a, b, c;
cout << "整数を三つ入力:"; cin >> a >> b >> c;
int sum = a + b + c;
cout << "合計 … " << sum << '\n';
cout << "平均\n";
cout << " キャスト記法 を用いた場合 … " << (double)sum / 3 << '\n';
cout << " 関数的記法 を用いた場合 … " << double(sum) / 3 << '\n';
cout << " static_cast演算子を用いた場合 … " << static_cast<double>(sum) / 3 << '\n';
}
--
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/6701187
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック