[C++] Różnica między tablicą globalną, a tablicą lokalną
Ostatnio zmodyfikowano 2013-10-08 20:56
Soon Temat założony przez niniejszego użytkownika |
[C++] Różnica między tablicą globalną, a tablicą lokalną » 2013-10-07 19:58:35 1.Napisz program, który pozwoli użytkownikowi na wprowadzenie dowolnej ilości liczb (ilość tą będzie podawał na początku) i obliczenie ich średniej arytmetycznej. Podawane liczby przechowuj w 100-elementowej tablicy (wykorzystasz zeń tylko część). Moglibyście mi wytłumaczyć ten kod? #include <iostream>
using namespace std;
int tablica[ 100 ];
int main() { int ilosc; cout << "Podaj ilosc liczb: "; cin >> ilosc; for( int i = 1; i <= ilosc; ++i ) { cin >> tablica[ i ]; tablica[ i ] += tablica[ i - 1 ]; } float a = static_cast < float >( tablica[ ilosc ] ) / ilosc; cout << a << endl; system( "pause" ); return 0; }
A dokładnie: tablica[ i ] += tablica[ i - 1 ];
I dlaczego tablica jest tu zmienną globalną? Kiedy wrzuciłem ją do maina, wynik wyszedł zupełnie inny, ale właśnie nie rozumiem dlaczego. W jakich sytuacjach trzeba używać zmiennych globalnych? |
|
Monika90 |
» 2013-10-07 20:03:58 I dlaczego tablica jest tu zmienną globalną? |
Pytanie powinno brzmieć, po co w ogóle tablica? Kiedy wrzuciłem ją do maina, wynik wyszedł zupełnie inny, ale właśnie nie rozumiem dlaczego. |
Zmienne globalne typów wbudowanych są zerowane, a lokalne nie. Spróbuj: int tablica[ 100 ] = { }; wtedy powinna być wyzerowana nawet jako lokalna. W jakich sytuacjach trzeba używać zmiennych globalnych? |
Nie spotkałam się z sytuacją, w której wprowadzenie zmiennej globalnej rozwiązało jakikolwiek problem projektowy. |
|
Soon Temat założony przez niniejszego użytkownika |
» 2013-10-07 20:09:40 Ok, dzięki. A mogłabyś wytłumaczyć dokładnie ten fragment kodu? |
|
DejaVu |
» 2013-10-07 21:00:04 |
|
kys |
» 2013-10-08 20:56:48 Dodałbym jeszcze po cin >> ilosc; linijkę cin >> tablica[0]; ponieważ marnujesz teraz miejsce na jeden element tablicy :) |
|
« 1 » |