• 締切済み

次のプログラムを作りたいのですが…

入力した1点と原点(0,0)で囲まれる長方形の面積を求めるプログラムです。 ただし、点を表す構造体を使用すること。 【結果】 ./pa-j-1.c point (x, y)? -> 10.5 21.3 area = 223.65 10.5 21.3の部分は自分で好きな数値を入力します。 よろしくお願いします。 struct point{を使うことはわかるのですが…

みんなの回答

  • php504
  • ベストアンサー率42% (926/2160)
回答No.3

プログラムの質問をする場合には環境を必ず書きましょう OS、言語、コンパイラーは必須です。 また課題であれば質問の全文を修正なく書かれたほうがいいです。 それと丸投げ質問は許可されていますが回答者からは嫌われるため回答される可能性はかなり低くなります。(過去丸投げでちゃんと回答された質問は見たことがありません。) ある程度自分が努力したあとが見られると回答率も格段にアップしますのでとりあえず自分の書ける範囲のソースを書いて提示するのが良いでしょう。

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.2

作ってみました。 例によってコメントはないので自分で解析してください。 #include <iostream> #include <cmath> #include <cstdlib> #include <limits> #include <stdexcept> template <class T> struct point {  point(T x0 = T(), T y0 = T()) : x(x0), y(y0) {}  T x, y; }; template <class charT, class traits, class T> std::basic_istream<charT, traits>&  operator>>(std::basic_istream<charT, traits>& istr, point<T>& var) {  istr >> var.x >> var.y; } template <class T> T area_of_rectangle(T base, T altitude) {  base = std::abs(base);  altitude = std::abs(altitude);  if (std::numeric_limits<T>::max() / base < altitude)   throw std::overflow_error("overflow");   return base * altitude; } int main() {  std::cout.exceptions(std::ios::badbit | std::ios::failbit);  try  {   std::cout << "./pa-j-1.c\n\npoint(x, y)\? -> ";   std::cout.flush();   point<long double> pt;   std::cin >> pt;   if (std::cin.fail())    throw std::ios::failure("error");   std::cout << "\narea = " << area_of_rectangle(pt.x, pt.y) << std::endl;  }  catch (std::exception& e)  {   std::cerr << e.what() << std::endl;   return EXIT_FAILURE;  } } わざとボケてみた箇所もあるので、必要に応じて直してください。

回答No.1

なにを"よろしくお願い"しているのでしょうか?

関連するQ&A

専門家に質問してみよう