質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

解決済

ループ抜け後、変数に足算し、再度ループを回したいです。

Moco
Moco

総合スコア2

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

3回答

-1評価

0クリップ

236閲覧

投稿2022/07/02 23:45

編集2022/07/22 10:39

入力H × W 個の '$' で描かれた長方形を出力するプログラムを作成しています。
例ーーーーーーーーーーーーーーーーー
入力が「3 4」[5 6]の場合。
$$$$
$$$$
$$$$

$$$$$$
$$$$$$
$$$$$$
$$$$$$
$$$$$$
ーーーーーーーーーーーーーーーーーー

私が作成したプログラムが下記となります。簡単にご説明させていただきます。
まず、入力された数値を配列に格納します。そして、配列の各要素に多重ループを用いて参照し、"$"を出力しようと思った次第です。
※配列vec(300)に関してですが、配列の要素数には変数が適用できないと考え、適当に設定しました。

C++

#include <bits/stdc++.h> using namespace std; int main(){ int l,z=0; vector<int>vec(300); while(cin>>l){ vec[z] = l; z++; } //cout << vec[0] << " " << vec[1]<< " " << vec[2] << " " << vec[3] << endl; int count = 0; for(int i=0; i<vec[count]; i++){ for(int p=1; p<vec[count+1]; p++){ cout << "#"; } cout << "#" << endl; } }

最初の入力の[3 4]であれば、望んでいる出力結果となります。
しかし、次に入力される[5 6]等を上手く出力できずに困っています。
count変数を用意し、ループ終了直後に、countを+2して、再度ループを回す事ができれば、配列の次の要素にアクセスできるのではと思いました。(第1ループ:vec[0][1]を参照。→ループを抜けた後にcountに+2→第2ループ:vec[2][3]を参照。....以下ループのようなイメージです。)
しかし、ループを抜けた後に、count+2して再度ループを回すやり方がどうしても思いつきません。
何か良い方法はありますでしょうか。ご助言いただけると幸いです。何卒よろしくお願いいたします。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

BeatStar

2022/07/03 03:25

> 配列vec(300)に関してですが、配列の要素数には変数が適用できないと考え… 違いますよ。そもそも前提が違う。確かにstd::vectorも配列ではあるけど、動的配列(C++でいうnew/deleteでやる配列)をクラスのメンバ変数として包んでメンバ関数を介してアクセスするやつです。生成時に要素数を指定する場合はコンストラクタに渡しているため、関数にとっての引数のようなものです。 だから一応生身のデータでも変数でも可能。
BeatStar

2022/07/03 03:33 編集

後、入力値はどのように渡されますか? 同じ標準入力を使うにしても、 「縦 横」をペアで一行で渡されてそれの複数行なのか、一括で「縦 横 縦 横 …」と一行で渡されるのか、縦と横をそれぞれ一行で渡される(つまりニ行で一つのペア)のかでも変わってきますよ。 やろうと思えば質問のコードをベースにして修正することは可能ですが、回りくどくなるので…
fana

2022/07/03 04:03

(すっごいどうでもいい話だけど,$って指定されているなら$を出力しようよ)

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。