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

Rozdział 19

Ostatnio zmodyfikowano 2018-06-12 00:22
Autor Wiadomość
Minos
Temat założony przez niniejszego użytkownika
Rozdział 19
» 2018-06-11 21:32:17
Chyba bardzo mało osób robiło ten kurs, a wątek w którym chciałem napisać został chyyyba zamknięty. Dlatego pozwolę sobie wkopiować tutaj mój kod i prosiłbym poradę. Albo raczej napisanie mi co zrobiłem nie tak, bo już drugi czy trzeci dzień z tym walczę i coś tracę. Nie za bardzo ogarniam tablice, co widać...
Ps. Nie wiem jak to ładniej zedytować, żeby było w ramce z nagłówkiem c/c++, za co przepraszam.

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

void wylosujLiczby( int tablica[], int numeromierz, int a, int b )
{
    srand( time( NULL ) );
    int i = 0;
    do
    {
       
        int tablica[ i ] =(( rand() % b ) + a );
        i++;
    } while( i < numeromierz );
   
}

void wypiszLiczby( int tablica[], int numeromierz )
{
    int i = 0;
    do
    {
        i++;
        cout << tablica[ i ] << endl;
       
       
       
    } while( i < numeromierz );
   
}

int obliczSume( tablica[ i ], numeromierz )
{
    int i = 0;
    int suma = 0;
    do
    {
        i++;
        suma += tablica[ i ];
       
       
    } while( i < numeromierz );
   
    return suma;
}

int main()
{
    int tablica[ 999 ];
    wylosujLiczby( tablica, 999, 4, 10 );
    wypiszLiczby( tablica, 999 );
    int iSuma = obliczSume( tablica, 999 );
    std::cout << "Suma liczb wynosi: " << iSuma << std::endl;
    return 0;
}


[ / i ]
P-171480
pekfos
» 2018-06-11 21:37:29
C/C++
int tablica[ i ] =(( rand() % b ) + a );
Po co te int?
P-171481
Minos
Temat założony przez niniejszego użytkownika
» 2018-06-11 21:51:35
Szczerze mówiąc to już chyba faktycznie zmęczenie materiału, nie wiem X_x. W sensie niepotrzebne.

A w linijce 33? Trochę nie ogarniam dlaczego tablica oraz i nie są zadeklarowane.

Edit, końcówka chyba tak:
int obliczSume( int tablica[], int numeromierz )
{
    int i = 0;
    int suma = 0;
    do
    {
        i++;
        suma += tablica[ i ];


    } while( i < numeromierz );

    return suma;
}

Potrzebuję duużo kawy, albo snu...

Tylko dlaczego losuje liczby z zakresu 4 do 13, hmm...
P-171482
Minos
Temat założony przez niniejszego użytkownika
» 2018-06-11 22:09:33
Dodatkowo mam taki problem, że ostatnia liczba jest duża (z 999 zmieniłem na 9, żeby sprawdzić krzaki).

http://s5.ifotos.pl/img/Screensho_qehssha.jpg
P-171484
pekfos
» 2018-06-11 22:10:20
C/C++
(( rand() % b ) + a )
Bo to nie jest formuła na losowanie z przedziału a do b.

C/C++
i++;
cout << tablica[ i ] << endl;
Kolejność operacji ma znaczenie. Nigdy nie wypisujesz tu elementu zerowego, a ostatni jest poza tablicą.
P-171485
Minos
Temat założony przez niniejszego użytkownika
» 2018-06-11 22:25:48
Faktycznie, nie doczytałem i uprościłem w głowie, ale widziałem, że nie tylko ja tak do tego podszedłem na forum
Poprawione na: tablica[ i ] =(( rand() % (b - 3) ) + a );

Z drugim problemem jeszcze się głowię, bo chyba rozumiem, o co chodzi, ale nie wiem jak tego uniknąć.
EDIT problem drugi - już rozumiem, że nawet miejsce i++; ma znaczenie.

Dzięki bardzo za szybkie odpowiedzi!
P-171486
jankowalski25
» 2018-06-11 23:29:31
b - 3
A ta trójka to skąd? Dla
a = 30, b = 50
 to już nie zadziała.
P-171488
Minos
Temat założony przez niniejszego użytkownika
» 2018-06-11 23:52:51
W sumie to poszedłem na łatwiznę, żeby po prostu losowało liczby od 4 do 10.
P-171490
« 1 » 2
  Strona 1 z 2 Następna strona