私はC++を初めて使っていて、整数を入力して '*'と '。'を使って2 * n + 1サイズの蝶ネクタイの形にするという割り当てを持っています。例えば:ドットと '*'を使って蝶ネクタイを描く
入力:3
出力:
*.....*
**...**
***.***
*******
***.***
**...**
*.....*
ので、私はこれで作ってみた:
#include <iostream>
using namespace std;
int main()
{
int n;
cin>>n;
for(int i=1;i<=n+1;i++)
{
for (int p=i;p>=1;p--)
cout<<"* ";
for (int j=n;j>(i-1);j--)
cout<<". ";
for (int j=n;j>i;j--)
cout<<". ";
for (int j=i;j>=1;j--)
cout<<"* ";
cout<<endl;
}
for(int i=n;i>=1;i--)
{
for (int j=i;j>=1;j--)
cout<<"* ";
for (int j=n;j>(i-1);j--)
cout<<". ";
for (int j=n;j>i;j--)
cout<<". ";
for (int j=i;j>=1;j--)
cout<<"* ";
cout<<endl;
}
}
が、私の出力ルックスこのような:
入力:3
出力:私はループを微調整しようとした場合、それはできませんので
*.....*
**...**
***.***
******** //<--1 redundant * at this row//
***.***
**...**
*.....*
ので、私は思ったんだけど、それを削除するにはどのような方法がありますもはや同じ形。または、この割り当てを行うより効率的な方法はありますか?私は何時間もそれをしてきました!ありがとう!
「スター」とは何ですか? – user4581301
コードをインデントしてみてください。インデントはコンパイラにとって重要ではありませんが、コードを読んでいる人間にとっては重要です。 –
また、Eric Lippertの[小さなプログラムのデバッグ方法](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)を読んで、デバッガを使用してコードを1行ずつステップ実行する方法 –