• ベストアンサー

C++の問題の問題なんですが

a = 3+aを代入演算子を用いて表現せよ。ってどうすればいいんですか? a+=3;ですか? 以下のように出力されるプログラムを作成せよ 年齢を入力してください 16 生まれた年を入力してください 1986 好きな数字を入力してください 7 あなたは1986年生まれの16才で、7が好きですね #include <iostream> using namespace std; int main(){ cout << "年齢を入力してください\n" << 16 << endl; cout << "生まれた年を入力してください\n" << 1986 << endl; cout << "好きな数字を入力してください\n" << 7 << endl; cout << "あなたは1986年生まれの16才で、7が好きですね" << endl; return0; } 上の問題にcinを一度だけ使って表現せよ 1番最初のプログラムはこうでいいのかなと思うんですが、次のcinを一度だけ使って表現せよって言うのが分かりません。実行結果も含めて教えてもらえませんか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

>以下のように出力されるプログラムを作成せよ >(略) >cout << "年齢を入力してください\n" << 16 << endl; >cout << "生まれた年を入力してください\n" << 1986 << endl; >cout << "好きな数字を入力してください\n" << 7 << endl; >cout << "あなたは1986年生まれの16才で、7が好きですね" << endl; ちょっとクスリと笑ってしまいました。出題者の間抜け加減と、質問者さんの素直さに。 確かに「以下のように出力される」って言う出題なので、問題文を素直に受け取れば「ただ出力のみを行うプログラム」を書いても正解って事になりますよね。 でも、出題者が期待してるのは「以下のように3つの質問文を出力し、質問文の出力直後に入力を行い、最後に入力した結果を出力するプログラムの作成」だと思います。 例えば #include <iostream> using namespace std; int main(){ int age,year,number; cout << "年齢を入力してください" << endl; cin >> age; cout << "生まれた年を入力してください" << endl; cin >> year; cout << "好きな数字を入力してください" << endl; cin >> number; cout << "あなたは" << year << "年生まれの" << age << "才で、" << number << "が好きですね" << endl; return0; } とか。 これを実行すると 年齢を入力してください 16 ←ここは手で入力する 生まれた年を入力してください 1986 ←ここは手で入力する 好きな数字を入力してください 7 ←ここは手で入力する あなたは1986年生まれの16才で、7が好きですね とか 年齢を入力してください 99 ←ここは手で入力する 生まれた年を入力してください 1908 ←ここは手で入力する 好きな数字を入力してください 4649 ←ここは手で入力する あなたは1908年生まれの99才で、4649が好きですね のように「入力した値によって異なる結果が表示」されます。 >次のcinを一度だけ使って表現せよって言うのが分かりません。 上記の例では「cinを3度使って表現」していますよね。 出題の意図は、上記の例のようにcinを3度使わず、1度だけにせよ」って事です。 >実行結果も含めて教えてもらえませんか? 実行結果は 年齢を入力してください 16 ←ここは手で入力する 生まれた年を入力してください 1986 ←ここは手で入力する 好きな数字を入力してください 7 ←ここは手で入力する あなたは1986年生まれの16才で、7が好きですね とか 年齢を入力してください 99 ←ここは手で入力する 生まれた年を入力してください 1908 ←ここは手で入力する 好きな数字を入力してください 4649 ←ここは手で入力する あなたは1908年生まれの99才で、4649が好きですね とか 年齢を入力してください -1234 ←ここは手で入力する 生まれた年を入力してください 54321 ←ここは手で入力する 好きな数字を入力してください -100000 ←ここは手で入力する あなたは54321年生まれの-1234才で、-100000が好きですね などのようになります。

その他の回答 (3)

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

> でも次のやつがわかりません。cinを一度だけ使って表現せよってやつが こうするだけでは? istream& istr = cin; 以降は、cinの代わりにistrを使えばOK

noname#144013
noname#144013
回答No.2

こんにちは。 > 上の問題にcinを一度だけ使って表現せよ これは、ループなどを使用して、   「cin の記述は1箇所のみで済ませる」 ということではないでしょうか? 以下は一例です。 ■サンプル ※インデントのため全角スペースを入れています。  もしも、使用する際はタブなどに一括置換して下さい。 ※エラー処理は行っていません。  ですので、数値入力で、数値以外の文字を入れた場合など、  表示等がおかしくなります。 ※質問者さんが意図するものでなかった場合は、すみません。 ==================== #include <iostream> using namespace std; int main(void) {   int i;   int dt[3];   for(i=0; i<3; i++){     switch(i){     case 0:       cout << "年齢を入力してください" << endl;       break;     case 1:       cout << "生まれた年を入力してください" << endl;       break;     case 2:       cout << "好きな数字を入力してください" << endl;       break;     }     dt[i] = 0;     cin >> dt[i];   }   cout << "あなたは";   cout << dt[1] << "年生まれの";   cout << dt[0] << "才で、";   cout << dt[2] << "が好きですね" << endl;   return 0; } <実行結果> 年齢を入力してください 16 生まれた年を入力してください 1986 好きな数字を入力してください 7 あなたは1986年生まれの16才で、7が好きですね ■補足 なお、↓のご質問も今回の応用で対応可能だと思います。 C++の問題なんですが http://okwave.jp/qa5063908.html ・入力した値を「計算する部分」を追加すれば良いと思います。

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

> a = 3+aを代入演算子を用いて表現せよ。ってどうすればいいんですか? すでに代入演算子を用いているようですが?

noname#127615
質問者

補足

じゃあこれはこのままで大丈夫ですね。でも次のやつがわかりません。cinを一度だけ使って表現せよってやつが

関連するQ&A