Map Width?7
Map Height?5
と数値を入力すれば
+++++++
+~~~~~+
+~~~~~+
+~~~~~+
+++++++
(~部分は空白です)
上記の様な図形を出力させたいです
よろしくお願いします
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
解決済みになっていますが、(width, height) が (7,5) の場合はいいとして、
(1,1)、(1,2)、(2,1)、(2,2) の場合、どのように出力させたいのですか?
解決したコードで思い通りに出力できますか?
追記
解決したコードを見せてください。C++ で書いていますか?
次のコードとはかなり違うでしょうね。
C++
1#include <iostream> 2using namespace std; 3 4int main(void) 5{ 6 unsigned w, h; 7 cin >> w >> h; 8 h -= 2, w -= 2; 9 for (int i = h+2; i--; endl(cout)) 10 for (int j = w+2; j--; ) cout.put("+ "[i-1 < h && j-1 < w]); 11}
投稿2022/01/11 01:19
編集2022/01/12 06:18総合スコア8224
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ググっただけですが、このあたりが参考になるかと思います。
■ 【C言語】アスタリスクで「四角形」を描画する
https://schlaf.ltd/programming/c/c-asterisk-square/
課題か何かだと思うのでヒントだけ。
四角形を塗りつぶしでなく空白にしたい場合は、下図の黄色い部分の場所の場合に「+」のかわりに「空白」をプロットすれば良いかと思います。
<追記>
参考までに、空白のエリアを算出する条件を追加したコードを置いておきます。
C++ というより C言語コードですが・・
c++
1#include <stdio.h> 2 3int main(void) 4{ 5 int width; 6 int height; 7 8 printf("Enter the width : \n"); 9 scanf("%d", &width); 10 11 printf("Enter the height : \n"); 12 scanf("%d", &height); 13 14 // 四角形を描画する 15 for(int i=0; i<height; i++){ 16 for(int j=0; j<width; j++){ 17 // 下記範囲の場合、空白とする 18 if(i > 0 && i < (height-1) && j > 0 && j < (width-1)) { 19 printf(" "); 20 } else { 21 printf("+"); 22 } 23 } 24 printf("\n"); 25 } 26 27 return 0; 28}
投稿2022/01/10 12:09
編集2022/01/13 17:02総合スコア4648
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。