落書きノート

ふと自分が気になった事を書いてます

慣習 C++で問題を解く

マングルされているコードをデマングルするようにコードを変更したものもあります。それに気をつければ後は簡単です。

#include <iomanip>
#include <iostream>
#include <typeinfo>
#include <cxxabi.h>

using namespace std;

static char* demangle(const char *demangle){
  int status;
  return abi::__cxa_demangle(demangle, 0, 0, &status);
}

int main(void){
  cout << "int + int " << "大きさ: " << sizeof(2 + 3) << "bytes "
  << "型: " << demangle(typeid(2 + 3).name()) << endl;
  cout << "double + double " << "大きさ: " << sizeof(3.2 + 5.4) << "bytes "
  << "型: " << demangle(typeid(3.2 + 5.4).name()) << endl;
  cout << "int + double " << "大きさ: " << sizeof(3 + 2.2) << "bytes "
  << "型: " << demangle(typeid(3 + 2.2).name()) << endl;
  cout << "double + int " << "大きさ: " << sizeof(2.2 + 4) << "bytes "
  << "型: " << demangle(typeid(2.2 + 4).name()) << endl;

  return 0;
}

#include <iostream>

using namespace std;

int main(void){
  int a,b,c;

  cout << "3つの整数値を入力してください。" << endl;
  cin >> a >> b >> c;

  cout << "合計:";
  cout << a + b + c << endl;

  cout << "平均:";
  cout << (a + b + c) / 3 << endl;

  return 0;
}

#include <iostream>
#include <iomanip>

using namespace std;

int main(void){
  float a = 0.0f;

  cout << "   float    " << " int " << endl;
  cout << "------------" << "-----" << endl;
  cout << fixed << setprecision(6);

  for(int i = 0; i <= 1000; i++, a += 0.001f)
    cout << a << "  " << static_cast<float>(i) / 1000 << endl;

  return 0;
}