C ++ 'da while döngüsünü kullanan elmas desen

Sep 17 2020

Elmasın uzunluğuna bağlı olan c ++ 'da while döngüsünü kullanarak bir elmas deseni yazdırmaya çalışıyorum ancak görmek istediğim çıktıyı alamıyorum. kodumla ilgili sorun ne gibi görünüyor?

#include <iostream>
using namespace std;

int main ()
{
    cout << "Length of diamond:";
    int length = 0;
    cin >> length; 
    length = length/2;
    int r = -length;
    while (r <= length) {
        r++;
        int c = -length;
        while (c <= length) {
            c++; 
            if (abs (r) + abs (c) == length) cout << ".";
            else cout << " ";
        }
    
        cout << endl;
    }

    return 0;
}

Yanıtlar

brc-dd Sep 17 2020 at 08:31

Tarafından işaret edildiği gibi john içinde yaptığı açıklama , sorun artan ile rve c. İşte düzeltilmiş kod:

#include <iostream>
using namespace std;

int main() {
    int length, r, c;
    cout << "Length of diamond: ";
    cin >> length;
    cout << '\n';
    length /= 2;
    r = -length;
    while (r <= length) {
        c = -length;
        while (c <= length) {
            if (abs(r) + abs(c) == length)
                cout << '.';
            else
                cout << ' ';
            c++;
        }
        r++;
        cout << '\n';
    }
    return 0;
}

Örnek Çalıştırma :

Length of diamond: 9
    .    
   . .   
  .   .  
 .     . 
.       .
 .     . 
  .   .  
   . .   
    . 

İstenilen çıktıyı elde etmenin birden fazla yolu olabileceğini unutmayın. (Örneğin, yapım r = -length - 1yerine r = -lengthaynı, cönerdiği gibi, Zhu Şarkısı içinde onun comment .

Tavsiye: Hata ayıklayıcınıza aşina olun. Koymaktan kaçının using namespace std;.