Тема: Використання значення з функції
Є функція. У ній обчислюється якесь значення. Як використати це значення поза функцією (додати його до іншого числа і тд.) Виводити не потрібно.
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → C++ → Використання значення з функції
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися
Є функція. У ній обчислюється якесь значення. Як використати це значення поза функцією (додати його до іншого числа і тд.) Виводити не потрібно.
int f(...)
{
...
return x;// <- повертаємо значення
}
...
y = f(5); //<-зберігаємо потрібне значення
int f(...) { ... return x;// <- повертаємо значення } ... y = f(5); //<-зберігаємо потрібне значення
А якщо значення в функції постійно змінюється? Підійде?
Як це "значення в функції постійно змінюється"? Ви викликаєте функцію - вона повертає значення. Ви викликаєте її знову - вона знову повертає значення, можливо, інше (це вже від функції залежить), і тоді знову обробляєте це інше значення. А що таке "постійно змінюється" - не знаю.
Як це "значення в функції постійно змінюється"? Ви викликаєте функцію - вона повертає значення. Ви викликаєте її знову - вона знову повертає значення, можливо, інше (це вже від функції залежить), і тоді знову обробляєте це інше значення. А що таке "постійно змінюється" - не знаю.
В функції визначається рандомне число.
#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");
}
Використати його не можу
ем...
t = kubik(q);
навіщо тут q? приберіть же його
ем...
t = kubik(q);
навіщо тут q? приберіть же його
прибрав.
Проблема тут:
srand(time(NULL));
Функція rand повертає псевдовипадкові числа; "псевдо-" означає, що їхня послідовність завжди одна й та сама. Щоб отримати нову послідовність (а точніше, нове місце в дуже довгій послідовності), за допомогою функція srand встановлюється поточне значення. Якщо брати це значення з таймеру (time(NULL)), то поточне значення братиметься з годинника у мілісекундах, тобто не буде повторюватися (якщо не запустити дві програми точно в один і той самий час з точністю до мілісекунди). Але ви встановлюєте це значення кожного разу при виклику функції kubik, а оскільки програма виконується значно швидше за мілісекунду, отримуєте кожного разу одне й те саме число. Перенесіть цей рядок на початок функції main (і приберіть з решти місць) - і все запрацює.
http://ideone.com/w0Ks9J
Використайте дві чи більше змінних:
int playersMove = kubik();
int cpuMove = kubik();
if(playersMove > cpuMove){
cout<<"TI VIHRAV"<<endl;
}else{
cout<<"TI PROHRAV"<<endl;
}
При бажанні можна не порінювати їх, а додавати
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися