2017-12-04 14 views
-6

私は一日中C++でさまざまなforループの組み合わせを作成しようとしてきましたが、正しいものを手に入れることはできません。C++のforループを使用したリボンの形状

私は私の出力は次のようになりたい:

Ribbon

どのように配列を使用せずにこれを表示することができますか?

EDIT:このようにしてみましたが、反対側には複製できません。これまで私が得た最も近い出力です。

for(int i = 0; i < 6; i++) 
{ 
    cout<<"*"; 

    for(int j = 5; j > i; j--) 
    { 
     cout<<" "; 
    } 

    for(int k = 0; k <= i; k++) 
    { 
     cout<<"*"; 
    } 

    cout<<endl; 

} 

OUTPUT:

Fail ribbon

+2

これは宿題の質問によく似ています。彼らが仕事に近づいていたら、試したことをいくつか示しておくと役に立ちます。 – Jarryd

答えて

0

あなたは9つのラインを持っています。のは、それらに番号を聞かせて0〜8行番号Nが含ま:

  • 1 + (4 - abs(4 - n))アスタリスク(1、2、3、4、5、4、3、2、1)
  • 2 * abs (4 - n)スペース(8、6 、4、2、0、2、4、6、8)
  • 1 + (4 - abs(4 - n))アスタリスク(1、2、3、4、5、4、3、2、1)
-2

1つの選択肢は、増分します各列の星の数は、中点に達すると戻ってきます。

void printChar(char c, int count) 
{ 
    for (int i = 0; i < count; i++) 
     std::cout << c; 
} 

int main() 
{ 
    const int len = 10; 

    int stars = 0; 

    while (++stars <= len/2) 
    { 
     int spaces = len - stars * 2; 

     printChar('*', stars); 
     printChar(' ', spaces); 
     printChar('*', stars); 
     std::cout << "\n"; 
    } 
    stars--; 
    while (--stars > 0) 
    { 
     int spaces = len - stars * 2; 

     printChar('*', stars); 
     printChar(' ', spaces); 
     printChar('*', stars); 
     std::cout << "\n"; 
    } 

    return 0; 
} 

+1

説明やコメントのない答えとしてコードの塊を投稿しないでください。このような宿題については特にそうです。 OPはどのようにして完全なソリューションをそのままコピーすることから何かを学びますか? – harmic

関連する問題