Jak zrobić za pomocą tablicy coś w rodzaju "slimaka" za pomocą funkcji tabli (za pomocą dowolnego znaku). Wszelkie próby kończą się niepowodzeniem.
funkcji tabli
Co to jest funkcja "tabli"?
Poza tym pokaż, co dotychczas zrobiłeś.
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++)
int main(int argc, char *argv[])
{
void go(int dir, int n, int x, int y)
{
To tak można? :O
- cialo funkcji daj poza mainem/wywolanie funkcji w mainie
- jakie bledy pokazuje kompilator ?
for(i=0; i<n; i++) na for(int i=0; i<n; i++)
+funkcje za maina
Zapomniałeś jednego }. @up cysiej - z tego co wiem, w C nie można deklarować zmiennych w for'ach.
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);
}