2017-03-23 23 views
1

さて、私はこのダイヤモンドの形を作成しなければなりません。その種類は、ダイヤモンドの形になっていますが、右上の半分が欠落し、下半分が欠落しています。私は2つの図形を持っていますが、ダイヤモンド形の形では表示されません。代わりに、他の図形の上に印刷しています。ダイヤモンドの形が正しく印刷されていない

私はどこかを想定しています。ボトムシェイプ全体を右に動かすために同じ量のスペースを印刷する必要がありますか?あなたの問題をここに

#include <iostream> 

using namespace std; 

int main() 
{ 
    int row, col, siz; 

    cout << "Enter the size of the diamond: " << endl; 
    cin >> siz; 

    cout << endl << endl; 


    for(row = 1; row <= siz; row++){ 

     for(col = 1; col <= siz; col ++){ 
     if(col <= siz - row){ 
      cout << " "; 
     } 
     else{ 
       cout << "@"; 
      } 
     } 
     cout << "\n"; 
    } 

    for(row = 1; row <= siz; row++){ 

     for(col = row; col <= siz; col++){ 
      cout << "@"; 
     } 
     cout << "\n"; 
    } 

    return 0; 
} 
+2

開発環境に付属しているデバッガを使用してコードを実行すると、この問題が短時間で解決されます。 – user4581301

+1

上半分と下半分を別々に処理しませんでした。ここを参照してくださいhttp://www.sitesbay.com/cpp-program/cpp-print-diamond-of-star。そして、ここで質問を投稿する前に、ネット上でソリューションを検索することは良いことです。ソリューションの検索やリンクを提供する必要がなくなるだけでなく、より高速なソリューションを得ることができます。あなたはまずそれを自分でやることでもっと学びます。さらに多くの問題がある場合、コミュニティはいつでもあなたを助ける準備ができています。質問を投稿する際には、問題の解決方法を見つけるために自分の研究をいくつか提示する必要があります。 –

答えて

0

私の解決策:

#include <iostream> 
using namespace std; 

int main() 
{ 
    int row, col, siz; 

    cout << "Enter the size of the diamond: " << endl; 
    cin >> siz; 

    cout << endl << endl; 

    // drawing top left side of diamon 
    for(row = 1; row <= siz; row++){ 
     for(col = 1; col <= siz; col ++){ 
     if(col <= siz - row){ 
      cout << " "; 
     } 
     else{ 
       cout << "@"; 
      } 
     } 
     cout << "\n"; 
    } 

    // drawing bottom right side of diamon 
    for(row = 1; row <= siz; row++){ 
     for(col = 1; col <= siz*2-row; col++){ 
      if(col<siz){ 
       cout << " "; 
      } 
      else{ 
       cout << "@"; 
      } 
     } 
     cout << "\n"; 
    } 

    return 0; 
} 

説明: 後半の最初の列は、最初の「SIZ」時間「」とし、「SIZ」時間 "を描くために持っています@ '。だからそれはsiz * 2をループしなければならない。それからあなたはいつも 'siz' time ''を持っていて、たびに '@'が少ないので、ループはどういうふうに見えるのですか

0

私は自分の答えを分かりたいと思っています。あなたは次の形を求めています。

  * 
     * * 
     * * * 
    * * * * 
    * * * * * 
      * * * * * 
      * * * * 
      * * * 
      * * 
      * 

それは、私はあなたがそれが役に立つことを願って、右上と左下部分

#include <iostream> 

using namespace std; 

int main() 
{ 
    int row, col, size; 

    cout << "Enter the size of the diamond: " << endl; 
    cin >> size; 

    for(row = 1; row <= size; row++){ 
    for (col = 1; col <= size; col++){ 
     if(col+row == (size/2)) 
     for(int i=0;i<row;i++) 
      cout <<"*"; 
     if(row >= size/2 && col >= size/2) 
     { 
      if(col + row < size+size/2) 
      cout <<"*"; 
     } 
     else 
     cout <<" "; 
    } 
    cout << endl; 
    } 

    return 0; 
} 

が欠落して菱形のです。

関連する問題