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

Tablice Jednowymiarowe - Program nie działa

Ostatnio zmodyfikowano 2015-07-02 11:39
Autor Wiadomość
Fakiron
Temat założony przez niniejszego użytkownika
Tablice Jednowymiarowe - Program nie działa
» 2015-07-01 19:13:16
Witam.
Piszę taki oto program:
Napisz program, który wylosuje 999 liczb całkowitych z zakresu od 4 do 10 włącznie, wypisze te wartości na ekran, po czym zsumuje je i wynik wypisze na ekran. Program ma wykorzystywać tablicę, która zostanie najpierw wypełniona liczbami losowymi z określonego przedziału, a następnie wynik zostanie obliczony na podstawie zawartości całej tablicy.

C/C++
#include <iostream>
#include <ctime>
#include <cstdlib>

int main()
{
    srand( time( NULL ) );
    int liczba[ 999 ];
    int licznik = 999;
    int licznik2 = 999;
    int suma;
    do
    {
       
        liczba[ licznik ] =( rand() % 11 ) + 4;
        licznik--;
       
    } while( licznik >= 0 );
   
    do
    {
       
        suma = 0 + liczba[ licznik2 ];
       
    } while( licznik2 >= 0 );
   
    std::cout << "Suma liczb wynosi: " << suma << std::endl;
   
    return 0;
}

Czy mógłby mi ktoś powiedzieć dlaczego program nie robi nic?

Z góry dziękuję.
P-134225
carlosmay
» 2015-07-01 20:19:46
sume zadeklaruj od razu
C/C++
int suma = 0;
W drugiej pętli nic nie robisz z indeksem licznik2,
C/C++
suma = suma + liczba[ licznik2 - 1 ];
--licznik2;
999 elementów ma indeks max = 998.

Na koniec od siebie, spróbuj indeksy inkrementować
C/C++
++licznik;
i zaczynać od zera gdzie zaczyna się tablica.
Łatwiej zapanować nad porządkiem i lepiej widać co jest nie tak, przy ewentualnych błędach

P-134228
Fakiron
Temat założony przez niniejszego użytkownika
» 2015-07-02 11:26:37
C/C++
#include <iostream>
#include <ctime>
#include <cstdlib>

int main()
{
    srand( time( NULL ) );
    int liczba[ 998 ];
    int licznik = 0;
    int licznik2 = 0;
    int suma = 0;
    do
    {
       
        liczba[ licznik ] =( rand() % 11 ) + 4;
        licznik++;
       
    } while( licznik >= 998 );
   
    do
    {
       
        suma = 0 + liczba[ licznik2 ];
        licznik2++;
       
    } while( licznik2 >= 998 );
   
    std::cout << "Suma liczb wynosi: " << suma << std::endl;
   
    return 0;
}

A mógłby ktoś poprawić w tym błędy i podać mi gotowy kod, bo wraz nie działa, albo pokazuje liczby np. 10,11,4, a nie miał tak działać :/
P-134244
BadBullPL
» 2015-07-02 11:39:30
prosze przeanalizuj ten kod:
C/C++
#include <iostream>
#include <ctime>
#include <cstdlib>

int main()
{
        srand( time( NULL ) );
        int liczba[ 999 ];
        int licznik = 0;
        int suma = 0;
        do
        {
               
                liczba[ licznik ] =( rand() % 7 ) + 4;
                licznik++;
               
            } while( licznik < 999 );
   
        licznik = 0;
        do
        {
               
                suma += liczba[ licznik ];
        std::cout << "Liczba nr " << licznik + 1 << " : " << liczba[ licznik ] << std::endl;
                licznik++;
               
            } while( licznik < 999 );
   
       
        std::cout << "Suma liczb wynosi: " << suma << std::endl;
       
        return 0;
}
P-134245
« 1 »
  Strona 1 z 1