• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Napisz program drukujący na ekranie krzyż. Wysokość krzyżyka wczytujemy z klawiatury.

+1 głos
1,517 wizyt
pytanie zadane 18 października 2020 w C i C++ przez eternal Użytkownik (620 p.)

Mam już szkielet zadania ale nie jestem w stanie wymyślić jak zaimplementować "#" pośrodku krzyża tak aby wczytana liczba przez użytkownika z każdej strony miała dokładnie tyle # ile żąda

#include <iostream>

using namespace std;

int main()
{
    int ile;
    cin >> ile;

    for(int i=1; i<=ile*2; i++)
    {

        for(int j=1; j<=ile*2; j++)
        {            if( j==ile || i==ile)
                cout << "#";
            else
                cout << " ";
        }
        cout << endl;
    }

    return 0;
}

 

3 odpowiedzi

0 głosów
odpowiedź 18 października 2020 przez VBService Ekspert (256,580 p.)
wybrane 1 listopada 2020 przez eternal
 
Najlepsza

Jeżeli mimo wszystko, chcesz użyć Twojego zapisu pętli, to do podwojonej wartości ile * 2 dodaj 1 wink. Wiem, czasami jak się długo siedzi na kodem taka "błahostka" umyka.

#include <iostream>
 
using namespace std;
 
int main()
{
    int ile;
    cin >> ile;
    int length = (ile * 2) + 1;
 
    for(int i=0; i<length; i++)
    { 
        for(int j=0; j<length; j++)
        {            
          if( j==ile || i==ile)
                cout << "#";
          else
                cout << " ";
        }
        cout << endl;
    }

    return 0;
}

 

0 głosów
odpowiedź 18 października 2020 przez VBService Ekspert (256,580 p.)
edycja 18 października 2020 przez VBService

A może użyj std::setw() i  std::string() wink

#include <iostream>
#include <iomanip> 
 
int main()
{
    int ile;
    std::cout << "Podaj wielkosc: ";
    std::cin >> ile;
 
    for (int i=0; i<ile; ++i) {
      std::cout << std::setw(ile+1) << '|' << "\n";
    }

    std::cout << std::string(ile, '-') << "+" << std::string(ile, '-') << "\n";

    for (int i=0; i<ile; ++i) {
      std::cout << std::setw(ile+1) << '|' << '\n';
    }
    
    return 0;
}

 

–1 głos
odpowiedź 18 października 2020 przez overcq Pasjonat (22,630 p.)
    for(int i=0; i<=ile*2; i++)
    {
 
        for(int j=0; j<=ile*2; j++)

 

Podobne pytania

0 głosów
1 odpowiedź 2,536 wizyt
0 głosów
1 odpowiedź 800 wizyt
0 głosów
1 odpowiedź 972 wizyt

93,733 zapytań

142,669 odpowiedzi

323,287 komentarzy

63,293 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...