Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Фетисов Владисл
0 / 0 / 0
Регистрация: 10.05.2017
Сообщений: 2
#1

Как сделать так, чтобы из функции возвращались различные значения? - C++

10.05.2017, 19:46. Просмотров 121. Ответов 4
Метки нет (Все метки)

Ребят, помогите. Имеется такой код, мне надо,чтобы из функции возвращались различные значения. Как это реализовать?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include <iostream>
#include <conio.h>
#include <string>
#include <ctime>
 
using namespace std;
 
void schet(int,int);
 
int main()
{
    cout<<"Клуб- Зенит\n";
    getch();
    cout<<"Введите цифру:\n"
          "1- Состав\n"
          "2- Символ\n"
          "3- Последние пять матчей\n"
          "4- Выход\n";
    int x;
    cin>>x;
    switch (x) {
    case 1:
    {
 
        cout<<"Тренер\n";
        cout<<"Мирча Луческу\n";
        cout<<"Основной состав:\n";
        string arr[11];
        arr[0]=" 99 Лунев";
        arr[1]=" 4 Кришито";
        arr[2]="13 Нету";
        arr[3]="60 Иванович";
        arr[4]="19 Смольников";
        arr[5]="21 Гарсия";
        arr[6]="14 Юсупов";
        arr[7]="10 Данни";
        arr[8]="9 Кокорин";
        arr[9]="24 Молло";
        arr[10]="22 Дзюба";
        for(int i=0;i<11;i++)
        {
            cout<<arr[i]<<endl;
        }
        break;
    }
    case 2:
        cout<<"Лев";
        break;
    case 3:
        int a,b;
        cout<<"Локомотив - Зенит"<<endl;
        schet(a,b);
        cout<<endl;
        cout<<"ЦСКА - Зенит"<<endl;
        int c,d;
        schet(c,d);
        cout<<endl;
        cout<<"Зенит - Амкар"<<endl;
        int e,f;
        schet(e,f);
        cout<<endl;
        cout<<"Уфа - Зенит"<<endl;
        int q,w;
        schet(q,w);
        cout<<endl;
        cout<<"Зенит - Томь"<<endl;
        int z,v;
        schet(z,v);
        cout<<endl;
        break;
    }
}
void schet(int a,int b)
{
    srand(time(0));
    a=rand()%4;
    b=rand()%4;
    cout<<a <<"-"<<b;
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.05.2017, 19:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как сделать так, чтобы из функции возвращались различные значения? (C++):

Как сделать так , чтоб возвращались первоначальные значения массива, перед работой с функцией - C++
В моей задаче программа работает с одним массивом на всём протяжении, как сделать так чтоб перед каждой функцией массив возвращался в...

Сделать так, чтобы функция возвращала как целые, так и дробные значения - C++
Задача: нужно найти среднее арифметическое чисел в одномерном массиве разных типов. В main() у пользователя спрашивается размер...

Как сделать так, чтобы значения экземпляров класса не повторялись - C++
Я пытаюсь написать игру 2048. Коротко об игре, для тех кто не знает: Есть поле 4х4 в нем появляются на случайной позиции квадратики с...

Как сделать так, чтобы функция rand() возвращала разные значения - C++
Добрый вечер, как можно в visual studio в цикле каждый раз задавать новые рандомные значения перменной, к примеру for(int i=0;i&lt;10;i++) ...

Как сделать так, чтобы функции были не вложенными? - C++
получается так, что сначала у меня идет функция int main(), потом int sum, и потом int maxx. Они получаются вложенными в int main(). Как...

Как сделать так чтобы переменная в описании одной функции была доступна в описании другой? - C++
Как сделать так чтобы переменная в описании одной функции была доступна в описании другой? Заранее спасибо.

4
vvm28
Учусь всегда.
19 / 20 / 4
Регистрация: 22.12.2013
Сообщений: 208
Записей в блоге: 11
Завершенные тесты: 1
10.05.2017, 21:02 #2
Цитата Сообщение от Фетисов Владисл Посмотреть сообщение
мне надо,чтобы из функции возвращались различные значения.
поставить перед функцией не void, а тип значений которое она должна вернуть.
Пример:
C++
1
2
3
int schet(int a,int b){
return a+b; // return возвращает из функции значение, в данном случае сумму а и b
}
0
zss
Модератор
Эксперт С++
6537 / 6099 / 2009
Регистрация: 18.12.2011
Сообщений: 15,870
Завершенные тесты: 1
10.05.2017, 21:14 #3
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Передавайте параметры не по значению, а по ссылке:
C++
1
2
3
4
5
void schet(int& a,int& b)
{
    a=rand()%4;
    b=rand()%4;
}
C++
1
2
3
4
5
6
7
8
int main()
{
    srand(time(0));
....       
    cout<<"ЦСКА - Зенит"<<endl;
    int c,d;
    schet(c,d);
    cout<<c <<"-"<<d<<endl;
1
anapshy
136 / 140 / 57
Регистрация: 14.11.2016
Сообщений: 560
Завершенные тесты: 2
10.05.2017, 21:21 #4
Фетисов Владисл, если нужно 2 сразу вернуть, то сделай структуру, внутри функции создавай объект типа структуры, записывай в нее рандомные числа, и возвращай return Созданный_Объект;
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
//*********************
struct Object { int a, b; }
ostream& operator << (ostream &os, Object &obj) { // Перегрузка оператора вывода 
    os << obj.a << " - " << obj.b;
    return os;
}
//*********************
int main(void){
    Object one;
    one = schet();
    cout << "Zenit - Dinamo\n" << one << endl;
    system("pause");
    return 0;
}
//*********************
Object schet(void) {
    Object tmp;
    srand(time(0));
    tmp.a = rand() % 4;
    tmp.b = rand() % 4;
    return tmp;
}
Добавлено через 1 минуту
Или такой вариант ещё попробуй:
C++
1
2
3
4
5
6
7
void schet(int &a,int &b) // по ссылке принимаешь
{
    srand(time(0));
    a=rand()%4;
    b=rand()%4;
    cout<<a <<"-"<<b;
}
0
MrGluck
Модератор
Эксперт CЭксперт С++
7492 / 4607 / 693
Регистрация: 29.11.2010
Сообщений: 12,602
10.05.2017, 21:35 #5
Оно?
C++
1
2
3
4
5
6
7
8
9
10
// где-то в начале main
srand(time(0));
 
int schet(int a,int b)
{
    a=rand()%4;
    b=rand()%4;
    cout<<a <<"-"<<b;
    return a - b;
}
0
10.05.2017, 21:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.05.2017, 21:35
Привет! Вот еще темы с ответами:

Сделать так, чтобы при вводе отрицательного значения программа выводила errror - C++
Цикл WHILE. В этом коде нужно сделать так чтобы при вводе отрицательного значения программа выводила errror. Как это сделать ? Вот код. ...

Сделать так, чтобы после ввода одного значения массива, не перескакивало на другую строку - C++
Возможно ли, и если возможно, то как, сделать так, чтобы после ввода одного значения массива, не перескакивало на другую строку? for...

при работе рекурсивной функции заканчивается стек и программа соответственно; как сделать так, чтобы она писала "стек закончился"? - C++
Сабж g++ 4.5.0

Как сделать так,чтобы - C++
Собственно,здрасте. Собственно,я новичок в с++. В общем у меня возник вопрос: Сперва приведу пример,иначе не могу объяснить: int...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru