Jak zrobić za pomocą tablicy coś w rodzaju "slimaka" za pomocą funkcji tabli (za pomocą dowolnego znaku). Wszelkie próby kończą się niepowodzeniem.
ślimak za pomocą tablicy w C
- Rejestracja: dni
- Ostatnio: dni
- Postów: 25
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Wrocław
- Postów: 13042
funkcji tabli
Co to jest funkcja "tabli"?
Poza tym pokaż, co dotychczas zrobiłeś.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 25
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++)
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Wrocław
- Postów: 13042
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
- cialo funkcji daj poza mainem/wywolanie funkcji w mainie
- jakie bledy pokazuje kompilator ?
- Rejestracja: dni
- Ostatnio: dni
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);
}