Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Rysowanie kwadratu w C++


Rekomendowane odpowiedzi

Opublikowano

Chciałbym narysować kwadrat ze znaków "-", "|", " ".

Musi to być funkcja w której deklarujemy tylko długość boku kwadratu.

Starałem się to zrobić i doszedłem do takiego kodu

#include <iostream>

using namespace std;

void fn( int n)
{
        char **tab = new char *[n];
    for(int i = 0; i<n; i++)
    {
        tab[i] = new char[n];
        for(int j = 0; j<n;j++)
        {
            tab[i][j];


    {
        if(i%2==0)
        {
        tab[i][0] = '-';
    tab[i][n - 1] = '-';
    tab[n - 1][j] = '|';
    tab[0][j] = '|';
        }
        else
        {
            tab[i][n - 1] = ' ';
            tab[i][0] = ' ';
            tab[n - 1][j] = '|';
            tab[0][j] = '|';
        }
    }
        }
    }


cout<<tab[n][n]<<endl;


}
int main()
{
    int n;
    cout<<"Podaj dł. boku kwadratu"<<endl;
    cin>>n;
    char **tab = new char *[n];
    for(int i = 0; i<n; i++)
    {
        tab[i] = new char[n];
        for(int j = 0; j<n;j++)
            tab[i][j];
    }

    fn( n);

    return 0;
}

Program nie działa i niestety nie mogę znaleźć błędu.

 

pl ;)

Opublikowano

W tej linijce:

tab[n - 1][j] = '|';

Próbujesz skorzystać z ostatniego elementu tablicy tab, któremu jeszcze nie przypisałeś wartości(przypisujesz ją dopiero w ostatnim wykonaniu pętli).

 

Swoją drogą, jeśli tego nie wiesz to tab z maina i tab z fn nie mają ze sobą nic wspólnego poza nazwą.

 

I kolejna rzecz, takie coś:

tab[i][j];

nic nie robi.

Opublikowano

Co do maina to po prostu nie usunąłem  tej części kodu, bo wydaje mi się że jest zbyteczna. ( Wcześniej po prostu inaczej to programowałem ). Zaraz pomyśle jak to zmienić aby działało

pl ;)

Opublikowano
#include <iostream>


using namespace std;

void fn( int n)
{
        char **tab = new char *[n];
    for(int i = 1; i<=n; i++)
    {
        tab[i] = new char[n];
        for(int j = 1; j<=n;j++)
        {
    {
        if(i%2==0)
        {
        tab[i][1] = '-';
    tab[i][n] = '-';
    tab[n][j] = '|';
    tab[1][j] = '|';
        }
        else
        {
            tab[i][n] = ' ';
            tab[i][1] = ' ';
            tab[n][j] = '|';
            tab[1][j] = '|';
        }
    }
        }
    }


cout<<tab[n][n]<<endl;


}
int main()
{
    int n;
    cout<<"Podaj dł. boku kwadratu"<<endl;
    cin>>n;

    fn(n);

    return 0;
}

 

Teraz mam coś takiego, aczkolwiek i tak nie działa.

pl ;)

Opublikowano


 

#include "stdafx.h"

#include <iostream>

using namespace std;

 

void narysuj(int bok)

{

for (int i = 0; i < bok; i++)

{

for (int y = 0; y < bok; y++)

{

if (i == 0 || i == bok - 1)

cout << "--";

else

cout << (y == 0 || y == bok - 1 ? "| " : " ");

}

cout << endl;

}

}

 

int main()

{

narysuj(10);

cin.get();

return 0;

}

ale że tylko coś takiego?

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...