• 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.

HackNation - ogólnopolski hackathon
+1 głos
1,446 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,600 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,600 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,476 wizyt
0 głosów
1 odpowiedź 737 wizyt
0 głosów
1 odpowiedź 907 wizyt

93,626 zapytań

142,551 odpowiedzi

323,036 komentarzy

63,130 pasjonatów

Advent of Code 2025

Top 15 użytkowników

  1. 1452p. - dia-Chann
  2. 1437p. - DziarnowskiJ
  3. 1411p. - Łukasz Piwowar
  4. 1409p. - CC PL
  5. 1371p. - raydeal
  6. 1369p. - Adrian Wieprzkowicz
  7. 1360p. - Tomasz Bielak
  8. 1335p. - robwarsz
  9. 1275p. - Maurycy W
  10. 1141p. - ssynowiec
  11. 1116p. - rucin93
  12. 1100p. - Mariusz Fornal
  13. 885p. - Dominik Łempicki (kapitan)
  14. 847p. - Grzegorz Aleksander Klementowski
  15. 838p. - Wojciech Malicki
Szczegóły i pełne wyniki

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

Kursy INF.02 i INF.03
...