1

Тема: Використання значення з функції

Є функція. У ній обчислюється якесь значення. Як використати це значення поза функцією (додати його до іншого числа і тд.) Виводити не потрібно.

2

Re: Використання значення з функції

int f(...)
{
  ...
  return x;// <- повертаємо значення
}

...
y = f(5); //<-зберігаємо потрібне значення

3 Востаннє редагувалося Dopamine (30.11.2014 19:02:24)

Re: Використання значення з функції

koala написав:
int f(...)
{
  ...
  return x;// <- повертаємо значення
}

...
y = f(5); //<-зберігаємо потрібне значення

А якщо значення в функції постійно змінюється? Підійде?

4

Re: Використання значення з функції

Як це "значення в функції постійно змінюється"? Ви викликаєте функцію - вона повертає значення. Ви викликаєте її знову - вона знову повертає значення, можливо, інше (це вже від функції залежить), і тоді знову обробляєте це інше значення. А що таке "постійно змінюється" - не знаю.

5 Востаннє редагувалося Dopamine (30.11.2014 19:41:32)

Re: Використання значення з функції

koala написав:

Як це "значення в функції постійно змінюється"? Ви викликаєте функцію - вона повертає значення. Ви викликаєте її знову - вона знову повертає значення, можливо, інше (це вже від функції залежить), і тоді знову обробляєте це інше значення. А що таке "постійно змінюється" - не знаю.

В функції визначається рандомне число.

#include<stdlib.h> 
#include<time.h> 
#include<iostream>
using namespace std;

int kubik()
{
    int q=1;
    srand(time(NULL));
        q = rand() % 6 + 1;
        return q;
}

void main()
{    
    
    char im[50];
    int e = 0;
    cout << "Vvedit vashe imia: ";
    cin >> im;
    do
    {
        cout << "\nHto hodit pershii?(0-wi, 1-kamputir):\n";
        cin >> e;
        switch (e)
        {
        case 0:
            cout << "nolek\n";
            break;
        case 1:
            cout << "adin\n";
            break;
        default:
            cout << "error! 0, 1 only\n";
        }

    } while (e > 1);


    int t = kubik();
    cout << t << endl;
    t = kubik();
    cout << t << endl;
    t = kubik();
    cout << t << endl;
     t = kubik();
    cout << t << endl;
     t = kubik();
    cout << t << endl;
     t = kubik();
    cout << t << endl;
    system("pause");
}

Використати його не можу

6

Re: Використання значення з функції

ем...

t = kubik(q);

навіщо тут q? приберіть же його

7

Re: Використання значення з функції

Cyan написав:

ем...

t = kubik(q);

навіщо тут q? приберіть же його

прибрав.

8 Востаннє редагувалося koala (30.11.2014 20:05:33)

Re: Використання значення з функції

Проблема тут:

Dopamine написав:
 srand(time(NULL));

Функція rand повертає псевдовипадкові числа; "псевдо-" означає, що їхня послідовність завжди одна й та сама. Щоб отримати нову послідовність (а точніше, нове місце в дуже довгій послідовності), за допомогою функція srand встановлюється поточне значення. Якщо брати це значення з таймеру (time(NULL)), то поточне значення братиметься з годинника у мілісекундах, тобто не буде повторюватися (якщо не запустити дві програми точно в один і той самий час з точністю до мілісекунди). Але ви встановлюєте це значення кожного разу при виклику функції kubik, а оскільки програма виконується значно швидше за мілісекунду, отримуєте кожного разу одне й те саме число. Перенесіть цей рядок на початок функції main (і приберіть з решти місць) - і все запрацює.
http://ideone.com/w0Ks9J

Подякували: Dopamine1

9

Re: Використання значення з функції

Використайте дві чи більше змінних:

int playersMove = kubik();
int cpuMove = kubik();
if(playersMove > cpuMove){
    cout<<"TI VIHRAV"<<endl;
}else{
    cout<<"TI PROHRAV"<<endl;
}

При бажанні можна не порінювати їх, а додавати