入力H × W 個の '$' で描かれた長方形を出力するプログラムを作成しています。
例ーーーーーーーーーーーーーーーーー
入力が「3 4」[5 6]の場合。
$$$$
$$$$
$$$$
$$$$$$
$$$$$$
$$$$$$
$$$$$$
$$$$$$
ーーーーーーーーーーーーーーーーーー
私が作成したプログラムが下記となります。簡単にご説明させていただきます。
まず、入力された数値を配列に格納します。そして、配列の各要素に多重ループを用いて参照し、"$"を出力しようと思った次第です。
※配列vec(300)に関してですが、配列の要素数には変数が適用できないと考え、適当に設定しました。
C++
1#include <bits/stdc++.h> 2using namespace std; 3 4int main(){ 5 int l,z=0; 6 vector<int>vec(300); 7 8 while(cin>>l){ 9 vec[z] = l; 10 z++; 11 } 12 13 //cout << vec[0] << " " << vec[1]<< " " << vec[2] << " " << vec[3] << endl; 14 15 int count = 0; 16 17 for(int i=0; i<vec[count]; i++){ 18 for(int p=1; p<vec[count+1]; p++){ 19 cout << "#"; 20 } 21 cout << "#" << endl; 22 } 23 24}
最初の入力の[3 4]であれば、望んでいる出力結果となります。
しかし、次に入力される[5 6]等を上手く出力できずに困っています。
count変数を用意し、ループ終了直後に、countを+2して、再度ループを回す事ができれば、配列の次の要素にアクセスできるのではと思いました。(第1ループ:vec[0][1]を参照。→ループを抜けた後にcountに+2→第2ループ:vec[2][3]を参照。....以下ループのようなイメージです。)
しかし、ループを抜けた後に、count+2して再度ループを回すやり方がどうしても思いつきません。
何か良い方法はありますでしょうか。ご助言いただけると幸いです。何卒よろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー