program rysujący szablon z gwiazdek - problem

0

Jak w temacie, mam napisać program, który rysuje następujący szblon:

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

tzn. jeśli tego nie widać mają to być 2 boki i przekątna.

Przy czym rozmiar szablonu (ilość gwiazdek) jest wprowadzoną przez użytkownika liczbą.

Napisałem program rysujący kwadrat z gwiazdek:

#include<iostream>
using namespace std;

void kwadrat(int, char);

int main(){
    int a=0;
    char b;
   
    cout<<"Narysuj kwadrat ze znakow= "; cin>>b;
   
    do{
    cout<<"Jaki duzy= "; cin>>a;
    }while(a<=0);
   
    kwadrat(a,b);
}

void kwadrat (int a, char b) {

    int i=0;
    int n=0;
   
    while(i<a){
       
        while(n<a){
        cout << b <<" ";
        n++;
        }
       
        cout<<endl;
        n=0;
        i++;
    }
}

i teraz pytanie jak ten program zmodyfikować aby rysował podany szblon?

Proszę o pomoc.

1

Coś nie mogę zasnąć... Niech masz:

#include<iostream>
using namespace std;

void triangle(unsigned n, char ch = '*')
{
    for(unsigned i = 0; i < n; ++i)
    {
        for(unsigned j = 0; j < (n - i); ++j)
            cout << (i && j && j != n - i - 1 ? ' ' : ch);
        cout << endl;
    }
}

int main()
{
    unsigned n;
    char ch;

    cout << "znak: ";
    cin >> ch;
    cout << "wysokosc: ";
    cin >> n;

    triangle(n, ch);

    return 0;
}
0

Rozumiem, że to:

 
cout << (i && j && j != n - i - 1 ? ' ' : ch);

można zapisać inaczej jako:

 
if(i && j && j!=n-i-1){
    cout<<" ";
}else{
    cout<<ch;
}

Jeszcze tylko jedno i już będę szczęsliwy, co oznacza

if(i && j && j!=n-i-1)

Chodzi mi o to co to za warunek sama zmienna w nawiasie po "if"?

Np.

if(x)

Wiem że to banalne, jednak tego nie wiem.
Z góry dziękuję za pomoc.

0
qqww6 napisał(a)

Chodzi mi o to co to za warunek sama zmienna w nawiasie po "if"?
Np.

if(x)

Wiem że to banalne, jednak tego nie wiem.
Z góry dziękuję za pomoc.

instrukcja "if" wykona się wtedy gdy wyrażenie przyjmie prawdę logiczną (czyli wartość różną od zera). Podobnie jest na przykład z pętlą while.
O takie podstawy powinieneś pytać w dziale newbe.

0
Karolaq napisał(a)

i && j && ...

Zapis sugeruje, że 'i' oraz 'j' są bool'ami. Bądźmy wymowni, nie zaciemniajmy kodu :

i != 0 && j != 0 && ...

1 użytkowników online, w tym zalogowanych: 0, gości: 1