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

dodawanie liczb całkowitych w tablicy jednowymiarowej

Ostatnio zmodyfikowano 2017-05-16 16:05
Autor Wiadomość
michw
Temat założony przez niniejszego użytkownika
dodawanie liczb całkowitych w tablicy jednowymiarowej
» 2017-05-16 15:46:59
Cześć robiłem zadanie z Tablic jednowymiarowych i mam pytanie co do kodu a mianowicie wygląda to tak :

Treść : 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 <cstdlib>
#include <ctime>
using namespace std;
int losowanie_liczb()
{
    int a = rand() % 7 + 4;
    return a;
}


int main()
{
    int tablica[ 999 ];
    srand( time( NULL ) );
    int ile_razy, wynik;
    ile_razy = 0;
    wynik = 0;
    do
    {
        cout << "Liczba " << ile_razy << " : " <<( tablica[ ile_razy ] = losowanie_liczb() ) << " , " << endl;
        wynik += tablica[ ile_razy ];
        ile_razy++;
       
       
    } while( ile_razy != 999 );
   
   
    cout << endl;
    cout << "Dodawanie 999 wylosowanych liczb : " << endl;
    cout << wynik;
    return 0;

Pytanie może głupie ale dlaczego wywala mi prawidłowy wynik dopiero jak od zmiennej wynik odejme 1 ? :) //edit juz jest ok :)
P-161201
hit
» 2017-05-16 15:50:32
C/C++
int a = rand() % 7 + 4;
a = rand() % 7 + 4;

To jest bez sensu, nie uważasz?
Całą funkcję możesz skrócić do:
C/C++
int losowanie_liczb()
{
    return rand() % 7 + 4;
}

C/C++
int ile_razy, wynik;
ile_razy = 0;

Nie zerujesz drugiej zmiennej. Skąd wniosek o prawidłowym wyniku po odjęciu 1?
P-161202
karambaHZP
» 2017-05-16 15:53:25
wywala mi prawidłowy wynik dopiero jak od zmiennej wynik odejme 1 ? :)
Użycie zmiennej
wynik
 jest https://en.wikipedia.org/wiki​/Undefined_behavior.
P-161203
michw
Temat założony przez niniejszego użytkownika
» 2017-05-16 15:57:38
C/C++
int a = rand() % 7 + 4;
a = rand() % 7 + 4;

to już poprawiłem racja zapis bez sensu :)

co do tego wyniku sprawdziłem sume dla pierwszych 7 wyrazów w pętli oraz zwykłym zapisem

C/C++
cout << tablica[ 0 ] + tablica[ 1 ] + tablica[ 2 ] + tablica[ 3 ] + tablica[ 4 ] + tablica[ 5 ] + tablica[ 6 ] << endl;

po wyzerowaniu zmiennej wynik robi się poprawny :) nie przemyślałem tego, że na początku dostanie wartość 1 :) dzięki.
P-161204
hit
» 2017-05-16 16:00:41
"nie przemyślałem tego, że na początku dostanie wartość 1"

To nie jest tak, że ona "dostaje" wartość 1 na początku. Może mieć dowolną wartość, trzeba mieć tego świadomość.
P-161205
michw
Temat założony przez niniejszego użytkownika
» 2017-05-16 16:05:00
Ok dzięki
P-161206
« 1 »
  Strona 1 z 1