Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] Różnica między tablicą globalną, a tablicą lokalną

Ostatnio zmodyfikowano 2013-10-08 20:56
Autor Wiadomość
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?

C/C++
#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:
C/C++
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?
P-93332
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.
P-93333
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?
P-93334
DejaVu
» 2013-10-07 21:00:04
Jeżeli kodu nie rozumiesz to » KursyKurs C++ kurs.
P-93336
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 :)
P-93374
« 1 »
  Strona 1 z 1