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

[Lekcja 18] Praca domowa. Jak sumować dane z tablicy?

Ostatnio zmodyfikowano 2012-02-21 01:37
Autor Wiadomość
daniel.d
Temat założony przez niniejszego użytkownika
[Lekcja 18] Praca domowa. Jak sumować dane z tablicy?
» 2012-02-19 22:23:25
C/C++
#include <cstdlib>
#include <iostream>
using namespace std;

int liczby[ 999 ];
int wybor;
int powt = 0;
int wylosowana_liczba;
int licznik;
int suma;
int main()
{
    for( int licznik = 0; licznik <= 998; licznik++ ) {
        liczby[ licznik ] =( rand() % 10 ) + 4; // losowanie liczby z zapisaniem do tablicy
    }
   
    cout << "Podales liczby: \n";
    licznik = 0;
    do {
        cout << liczby[ licznik ] << "\n";
        licznik++;
    } while( licznik <= 998 );
   
    system( "pause" );
}

Napisałem już taki kod lecz nie wiem co napisać aby program dodał liczby z tablicy. Jak to zrobić?
P-51064
SeaMonster131
» 2012-02-19 22:27:51
'Tak samo' jak zrobiłeś np losowanie liczb.
Czyli tworzysz zmienna wynik, a w pętli (for albo while, bez różnicy, choć for jest krótsze) dodajesz do tej zmiennej każdy element tej tablicy.
P-51066
benq
pętla sumująca
» 2012-02-19 22:43:01
C/C++
do
{
    wynik = liczba[ licznik ] + wynik;
    liczba[ licznik ] = wynik;
    licznik++;
} while( licznik < 998 );
P-51067
daniel.d
Temat założony przez niniejszego użytkownika
» 2012-02-19 23:35:35
Dziękuję wam, ale nie rozumiem jednej rzeczy w tym kodzie, mianowicie:
C/C++
liczby[ licznik ] = wynik;

Dlaczego to?

EDIT. Po kompilacji tego:

C/C++
#include <cstdlib>
#include <iostream>
using namespace std;

int liczby[ 999 ];
int wybor;
int powt = 0;
int wylosowana_liczba;
int licznik;
int suma;
int wynik;
int main()
{
    for( int licznik = 0; licznik <= 998; licznik++ ) {
        liczby[ licznik ] =( rand() % 10 ) + 4; // losowanie liczby z zapisaniem do tablicy
    }
   
    licznik = 0;
    do {
        cout << liczby[ licznik ] << "\n";
        licznik++;
    } while( licznik <= 998 );
   
    do {
        wynik = liczby[ licznik ] + wynik;
        liczby[ licznik ] = wynik;
        licznik++;
    } while( licznik < 998 );
   
    cout << "\nSuma to: " << wynik << endl;
    system( "pause" );
}

Program wypisuje wszystkie liczby lecz wyświetla sumę 0. Co jest źle?
P-51072
benq
suma =0
» 2012-02-19 23:55:45
brak przed pętlą sumującą licznik = 0
P-51075
RazzorFlame
» 2012-02-20 07:11:03
To co benq napisał. Poza tym mógłbyś zrobić w pętli krócej:
C/C++
licznik = 0;
do
{
    wynik += liczba[ licznik ]; //wynik += liczba[licznik] to to samo co: wynik = wynik + liczba[licznik] ale krocej
   
} while( licznik < 998 );


Edit:
Pętla for: (Najkrótsza)
C/C++
for( licznik = 0; licznik < 999; licznik++, wynik += liczba[ licznik ] );

P-51082
daniel.d
Temat założony przez niniejszego użytkownika
» 2012-02-20 19:42:28
Dziękuję. Program już działa, liczby są sumowane, ale jeszcze jedna rzecz mnie niepokoi, mianowicie:
C/C++
#include <cstdlib>
#include <iostream>
using namespace std;

int liczby[ 999 ];
int wybor;
int powt = 0;
int wylosowana_liczba;
int licznik;
int suma;
int wynik;
int main()
{
    for( int licznik = 0; licznik <= 998; licznik++ ) {
        liczby[ licznik ] =( rand() % 10 ) + 4; // losowanie liczby z zapisaniem do tablicy
    }
   
    do {
        cout << liczby[ licznik ] << "\n";
        licznik++;
    } while( licznik <= 998 );
   
    wynik = 0;
    for( licznik = 0; licznik < 999; licznik++, wynik += liczby[ licznik ] );
   
    cout << "\nSuma to: " << wynik << endl;
    system( "pause" );
}

To jest właśnie ten kod, wszystko działa tylko kompilator pokazuje uwagi:
In function 'int main()':
[Warning] name lookup of 'licznik' changed [enabled by default]
[Warning]   matches this 'licznik' under ISO standard rules [enabled by default]
[Warning]   matches this 'licznik' under old rules [enabled by default]
Z tego co rozumiem to kompilatorowi chodzi o to, że zmienna licznik jest w starym standardzie i zostaje automatycznie zmieniona. O co dokładniej chodzi?
P-51141
benq
moja petla sumujaca
» 2012-02-21 01:37:23
wyżej poradziłem jak zrobić pętle i tam mi zakradł się błąd a mianowicie
nie potrzeba tam zapisu 

"liczby[ licznik ] = wynik;"

sorry za wprowadzenie w błąd. :)
P-51161
« 1 »
  Strona 1 z 1