Wpis z mikrobloga

@IchBinKrzychu: @MakontufTRZY: Technicznie może, któryś z standardów C na to pozwalał i bywa że kompilator przymknie na to oko.

Variable-length automatic arrays are allowed in ISO C99, and as an extension GCC accepts them in C90 mode and in C++.


@kierownica: Zawsze używaj flag kompilatora typu -Wall oraz -pedantic. Dzięki temu kompilator będzie bardziej surowy i łatwiej będzie wychwycić błąd.
Tak w ogóle to chyba niepotrzebnie w tym przykładu funkcja wczytywanie jest jako int. Myślę, że spokojnie można by było zrobić void wczytywanie i usunąć return n, który zwraca wartość wprowadzaną do funkcji.
@KrzaQ2:

and as an extension GCC accepts them in C90 mode and in C++


Innymi słowy kompilator może na to pozwolić mimo że nie jest to zgodne z standardem C++.

Nie mówię że jest to prawidłowe, tylko co się stanie jeśli kolega spróbuje uruchomić kompilator i nie doda odpowiednich flag.
@kierownica: Jak już zauważył Arek po drugim forze zmienna jest równa 0
Dlatego trzecia pętla nie wywołuje się ani razu. Więc wynik musi być zerem skoro nic do niego nie dodajesz
Napraw to poprzez dodatkową zmienną w drugim forze, chyba najprościej w ten sposób.