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

Rozdział 18 zadanie domowe- tablice jednowymiarowe

Ostatnio zmodyfikowano 2017-06-01 11:45
Autor Wiadomość
Dw00L
Temat założony przez niniejszego użytkownika
Rozdział 18 zadanie domowe- tablice jednowymiarowe
» 2017-05-31 19:19:45
Witam,

W rozdziale 18 kursu c++ zadaniem domowym było stworzenie tablicy, która losuje 999 liczb z przedzialu 4 do 10, wypisuje je na ekran i sumuje. Mój program dziala, lecz wynik sumy liczb jest za kazdym razem taki sam, czy tak powinno byc? oto mój kod:

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

using namespace std;

int main()

{
   
    srand( time( NULL ) );
    int tablica[ 999 ], ile_liczb, liczby = 0, suma;
   
    cout << "Nastapi wypisanie liczb" << endl;
    ile_liczb = 998;
   
    do {
        tablica[ liczby ] =( rand() % 7 ) + 4;
        cout << tablica[ liczby ] << endl;
        liczby++;
        ile_liczb--;
    } while( ile_liczb >= 0 );
   
    suma = tablica[ liczby ] + ile_liczb;
    cout << "suma liczb" << suma << endl;
   
   
    return 0;
}

Z góry dziękuję
P-161872
latajacaryba
» 2017-05-31 19:29:28
suma = tablica[ liczby ] + ile_liczb;

To nie suma całej tablicy, tylko suma komórki tablicy o indeksie [liczba] oraz zmiennej ile_liczb.

C/C++
int suma = 0;

for( int j = 0; j < rozmiar_tablicy; j++ )
     suma += tablica[ j ];


Czy o to Ci chodziło?
P-161873
Kinexity
» 2017-05-31 19:54:58
C/C++
#include <iostream>
#include <time.h>
#include <cstdlib>
using namespace std;

int main()
{
    int suma = 0;
    int liczba[ 999 ];
    srand( time( NULL ) );
    for( int i = 0; i < 999; i++ ) {
        cout <<( liczba[ i ] =( rand() % 7 ) + 4 ) << endl; // tutaj taki mały trick - przypisanie zwraca wartość przypisywaną
        suma += liczba[ i ];
    }
    cout << suma;
    system( "pause" );
}

http://cpp0x.pl/forum/temat/​?id=25368 - w zasadzie ostatnio już ten temat był w tym dziale omawiany, więc jak chcesz to zajrzyj.
P-161876
carlosmay
» 2017-05-31 22:42:35
system( "pause" );
Jeśli środowisko wymaga stosowania dodatkowych instrukcji, aby zatrzymać okno konsoli - rozważ zmianę IDE na lepsze.
https://4programmers.net/C/FAQ​/Zatrzymanie_okna_programu
P-161888
Kinexity
» 2017-05-31 23:04:08
@carlosmay mam VS2017 oraz VS2015 i mi tam nie przeszkadza potrzeba okresowego wrzucania takiej funkcji - system("pause") wrzucam tu na forum, normalnie używam _getch() -  chociaż głównie tego nie robię, ponieważ mam w swoich programach zawsze jakieś menu wyboru, które oczekują na liczbę więc to nie stanowi problemu
P-161889
carlosmay
» 2017-05-31 23:29:07
ctrl + F5 i jest pauza przed zamknięciem konsoli.
P-161890
Dw00L
Temat założony przez niniejszego użytkownika
» 2017-06-01 10:26:57
@carlosmay a jakie IDE możesz polecić? Nie do końca rozumiem schemat użycia system("pause") to jeszcze nie pojawiło się w kursie który obecnie robię.
P-161904
Dw00L
Temat założony przez niniejszego użytkownika
» 2017-06-01 10:36:45
kod poprawiony na:
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

int main()

{
   
    srand( time( NULL ) );
    int tablica[ 999 ], ile_liczb, liczby = 0, suma = 0;
   
    cout << "Nastapi wypisanie liczb" << endl;
    ile_liczb = 998;
   
    for( liczby = 0; liczby < ile_liczb; liczby++ )
    {
        tablica[ liczby ] =( rand() % 7 ) + 4;
        cout << tablica[ liczby ] << endl;
        liczby++;
        ile_liczb--;
    }
   
    suma += tablica[ liczby ];
    cout << "suma liczb" << suma << endl;
   
    system( "pause" );
   
   
    return 0;
}

Wszystko działa, muszę podszkolić pętlę for i ogarnąć system("pause") do końca :) Dziękuję za pomoc, temat do zamknięcia.
P-161905
« 1 » 2
  Strona 1 z 2 Następna strona