ślimak za pomocą tablicy w C

0

Jak zrobić za pomocą tablicy coś w rodzaju "slimaka" za pomocą funkcji tabli (za pomocą dowolnego znaku). Wszelkie próby kończą się niepowodzeniem.

0

funkcji tabli

Co to jest funkcja "tabli"?
Poza tym pokaż, co dotychczas zrobiłeś.

0

int main(int argc, char *argv[])
{
void go(int dir, int n, int x, int y)
{
int i;
for(i=0; i<n; i++)
{
switch (dir)
{
case 0: y--: break;
case 1: x++: break;
case 2: y++: break;
case 3: y--: break;
}
tab[y][x] = '#';
}

system("PAUSE");
return 0;
}

Kompilator nie chce przepuścić innstrukcji for(i=0; i<n; i++)

0
int main(int argc, char *argv[])
 {
 void go(int dir, int n, int x, int y)
 {

To tak można? :O

0
  1. cialo funkcji daj poza mainem/wywolanie funkcji w mainie
  2. jakie bledy pokazuje kompilator ?
0

for(i=0; i<n; i++) na for(int i=0; i<n; i++)
+funkcje za maina

0

Zapomniałeś jednego }. @up cysiej - z tego co wiem, w C nie można deklarować zmiennych w for'ach.

1

W GCC jest to jedno z rozszerzeń C. W standardowym C nie można.

W standardowym C (przez standardowe C mam na myśli C99, bo to jest od dawna obowiązujący standard) można:

  • deklarować zmienne wszędzie, także wewnątrz for
  • definiować funkcje lokalne (funkcje wewnątrz funkcji)
    i nie są to rozszerzenia. jeśli jakiś kompilator tego nie obsługuje, to jest zacofany.

pierwszy punkt jest również normą w C++, a drugi może funkcjonować jako rozszerzenie kompilatora w C++.

w standardowym C++ (a przez standardowe C++ mam na myśli C++11) można osiągnąć punkt drugi używając trochę innej składni:

int main(int argc, char *argv[])
{
    auto go = [&](int dir, int n, int x, int y)->void
    {
     ...
    };

    go(1,2,3,4);
}

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