- ベストアンサー
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を一度だけ使って表現せよって言うのが分かりません。実行結果も含めて教えてもらえませんか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>以下のように出力されるプログラムを作成せよ >(略) >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)
> でも次のやつがわかりません。cinを一度だけ使って表現せよってやつが こうするだけでは? istream& istr = cin; 以降は、cinの代わりにistrを使えばOK
こんにちは。 > 上の問題に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)
> a = 3+aを代入演算子を用いて表現せよ。ってどうすればいいんですか? すでに代入演算子を用いているようですが?
補足
じゃあこれはこのままで大丈夫ですね。でも次のやつがわかりません。cinを一度だけ使って表現せよってやつが