• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:visualC++を使って、)

visualC++で図形を作る方法

このQ&Aのポイント
  • visualC++を使って、「工」という文字の図形を作る方法について教えてください。
  • 上線の長さ、下線の長さ、縦線の長さ、太さを指定すると、「工」という文字の図形を生成するプログラムをvisualC++で作成したいです。
  • デバッグしたときに「*」が無限に現れる問題が発生しています。どのように修正すれば良いでしょうか?

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

  • ベストアンサー
  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.2

下記のようにすれば、いいでしょう。どこが変わっているかよく見よう。 /* 工の字を*で書く */ #include <stdio.h> void main() { int a,b,c,d,e,f,g,h; printf("上線の長さは?"); scanf("%d", &a); printf("下線の長さは?"); scanf("%d", &b); printf("縦線の長さは?"); scanf("%d", &c); printf("太さは?"); scanf("%d", &d); for(e=1; e<=d; e++){ printf(" "); for(h=1;h<=a; h++){ printf("*"); } printf("\n"); } for(f=1;f<=c; f++){ for(h=1;h<=a/2; h++){ printf(" "); } for(h=1;h<=d; h++) { printf("*"); } printf("\n"); } for(g=1; g<=d; g++){ for(h=1; h<=b; h++){ printf("*"); } printf("\n"); } } 警告が4つ出るが、それはVCのMicrosoft拡張で、安全のためscanfの替わりにscanf_sを使った方がいいといっているので、scanfを使う限り仕方が無いような。この警告は無視しても動作には支障が無いでしょう。

omochi1208
質問者

お礼

どうもありがとうございます。 横×縦では、無く、縦×横の順番で打ち込んだり、それにあわせて記号も変化させたりするんですね。 とりあえず、なんとなくって感じなので、この後もよく見比べさせていただきます。 解答していただいて本当にありがとうございます。

その他の回答 (1)

  • edomin7777
  • ベストアンサー率40% (711/1750)
回答No.1

とりあえず、無限ループを抜けるには、 ×for(h=1;h<=d; e++) ○for(h=1;h<=d; h++) に変更します。 あとは、出力されるものを修正しましょう。

omochi1208
質問者

お礼

「h」を「e」としてたんですね・・・見落としました・・・。 どうもありがとうございます。 出力されるものなんですが・・・ 「c:\program files\microsoft visual studio 9.0\vc\include\stdio.h(306) : 'scanf' の宣言を確認してください。」っていう警告文章が4つ出てきます・・・。 いったい何がおかしいのでしょうか・・・? すいません、質問だらけで・・・。

関連するQ&A