ślimak za pomocą tablicy w C

ślimak za pomocą tablicy w C
D1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 25
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.

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
0

funkcji tabli

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

D1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 25
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++)

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
0
Kopiuj
int main(int argc, char *argv[])
 {
 void go(int dir, int n, int x, int y)
 {

To tak można? :O

  • Rejestracja: dni
  • Ostatnio: dni
0
  1. cialo funkcji daj poza mainem/wywolanie funkcji w mainie
  2. jakie bledy pokazuje kompilator ?
  • Rejestracja: dni
  • Ostatnio: dni
0

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

MA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 260
0

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

Azarien
  • Rejestracja: dni
  • Ostatnio: dni
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:

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

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.