Форум программистов, компьютерный форум CyberForum.ru

Поиск одной переменной под другой - C++

Восстановить пароль Регистрация
 
Andyshon
1 / 1 / 1
Регистрация: 10.01.2014
Сообщений: 34
04.06.2014, 12:10     Поиск одной переменной под другой #1
Добрые день, сразу прошу извинить за неопределенное название темы!!

Вопрос такой: человек вводит число 42.0 например, а под этим числом обьявлена переменная num7:

C++
1
2
3
4
5
6
float num5 = 43.5;
char* numm5 = "Андрей";
float num6 = 42.1;
char* numm6 = "Владимир";
float num7 = 42.0;
char* numm7 = "Женя";
Как сделать, чтобы в ответе вместо 42.0 выводилась переменная numm7, которую заранее узнать невозможно?
Помогите!
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.06.2014, 12:10     Поиск одной переменной под другой
Посмотрите здесь:

Часть имени переменной как значние другой переменной C++
Класс многочленов от одной переменной C++
C++ Текст и числа в одной переменной
Использование одной переменной C++
C++ можно ли в с++ вызвать переменную из одной функции в другую т.е. мы переменну задали в одной функции а использовали в другой... и как это реализовать?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
randy92
7 / 7 / 2
Регистрация: 23.04.2014
Сообщений: 59
04.06.2014, 12:20     Поиск одной переменной под другой #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;
 
int main()
{
    float num5 = 43.5;
    char* numm5 = "Андрей";
    float num6 = 42.1;
    char* numm6 = "Владимир";
    float num7 = 42.0;
    char* numm7 = "Женя";
 
    float input;
    cin >>input;
 
    if(input == 43.5)
        cout << numm5;
    else if(input == 42.1)
        cout << numm6;
    else if(input == 42.0)
        cout << numm7;
    else return(0);
}
Andyshon
1 / 1 / 1
Регистрация: 10.01.2014
Сообщений: 34
04.06.2014, 12:24  [ТС]     Поиск одной переменной под другой #3
Спасибо, но мне нужно сделать это поиском, возможно так? Чтобы не проверками, а поиском?
randy92
7 / 7 / 2
Регистрация: 23.04.2014
Сообщений: 59
04.06.2014, 12:25     Поиск одной переменной под другой #4
Как понять "поиском"? Где искать? В массиве?
Andyshon
1 / 1 / 1
Регистрация: 10.01.2014
Сообщений: 34
04.06.2014, 12:28  [ТС]     Поиск одной переменной под другой #5
Может прояснит суть вопроса:
программа выглядит так:
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
        float num5 = 43.5;
        char* numm5 = "Андрей";
        float num6 = 42.1;
        char* numm6 = "Владимир";
        float num7 = 42.0;
        char* numm7 = "Женя";
 
        float win1;
        cout << "Рейтинг игрока которого выиграли: " ;
    cin >> win1;
 
    if (num9-win1 >=20){
    win1 = vkl1;
    vkl1 = 0;
    cout << win1 << " 0";
    }
    else if (num9-win1 <=2){
    win1 = vkl1;
    vkl1 = +2;
    cout << win1 << "+ 2";
    }
    else if (num9-win1 >=2.1<20){
    win1 = vkl1;
    vkl1 = +1;
    cout << win1 << "+ 1";
    }

Нужно чтобы вместо cout << win1 << "+ 1"; текущего рейтинга + 1 выводилось - имя игрока + 1
randy92
7 / 7 / 2
Регистрация: 23.04.2014
Сообщений: 59
04.06.2014, 12:40     Поиск одной переменной под другой #6
Не знаю. Если исходный код никак не менять, то на ум приходит только это
C++
1
2
3
4
5
6
if(win1== 43.5)
        cout << numm5 << "+1";
    else if(win1== 42.1)
        cout << numm6 << "+1";
    else if(win1== 42.0)
        cout << numm7 << "+1";
Но, думается мне, можно все намного проще сделать
Andyshon
1 / 1 / 1
Регистрация: 10.01.2014
Сообщений: 34
04.06.2014, 12:44  [ТС]     Поиск одной переменной под другой #7
Да, эти проверки я могу сделать...но когда у меня будет win1, win2, win3, win4, win5, и т.д. то писать столько проверок будет плоховато
Да, и потому, когда у всех измениться рейтинг, проверки придеться тоже переписовать!
randy92
7 / 7 / 2
Регистрация: 23.04.2014
Сообщений: 59
04.06.2014, 12:45     Поиск одной переменной под другой #8
Конечно. Проще структуру кода переписать. Более опытные товарищи подскажут
Andyshon
1 / 1 / 1
Регистрация: 10.01.2014
Сообщений: 34
04.06.2014, 12:47  [ТС]     Поиск одной переменной под другой #9
надеюсь)
lawr
 Аватар для lawr
351 / 245 / 120
Регистрация: 09.05.2014
Сообщений: 741
04.06.2014, 13:17     Поиск одной переменной под другой #10
ну если это приемлемо- я бы создал массив чисел и массив cтрок, вводимое число присвоил переменной и сравнивал ее с элементами массива. а вообще можно более детально описать задачу?
Andyshon
1 / 1 / 1
Регистрация: 10.01.2014
Сообщений: 34
04.06.2014, 13:27  [ТС]     Поиск одной переменной под другой #11
Lawr, то что ты написал - все верно, но я не понимаю как создать массив, как сравнивать...можешь на примере моего кода, который я выложил выше написать что то похожее на решение этой задачи? Буду очень благодарен!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.06.2014, 13:43     Поиск одной переменной под другой
Еще ссылки по теме:

вызов переменной из другой функции C++
C++ Многочлен от одной переменной
C++ Поиск символа не могу переделать под поиск сочетания символов

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

Или воспользуйтесь поиском по форуму:
randy92
7 / 7 / 2
Регистрация: 23.04.2014
Сообщений: 59
04.06.2014, 13:43     Поиск одной переменной под другой #12
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
#include <iostream>
using namespace std;
 
float results[3] = {43.5, 42.1, 42.0};
char* players[3] = {"Андрей", "Владимир", "Женя"};
float win1;
 
void getResults()
{
    for(int i = 0; i<3; i++)
    {
        if(win1 == results[i])
        {
            cout << "player " << players[i] << " won with " << results[i] << " result!" << endl;
        }
    }
}
 
main()
{
    float num9 = 40;
    float vkl1 = 10;
 
    cout << "Рейтинг игрока которого выиграли: " ;
    cin >> win1;
 
    if (num9-win1 >=20){
    win1 = vkl1;
    vkl1 = 0;
    getResults();
    }
    else if (num9-win1 <=2){
    win1 = vkl1;
    vkl1 = +2;
    getResults();
    }
    else if (num9-win1 >=2.1<20){
    win1 = vkl1;
    vkl1 = +1;
    getResults();
    }
}
(псевдокод). Смысл в том, что ты создаешь 2 массива с именами игроков и соотвествующими рейтингами во втором массиве. То есть 0 элемент 1 массива соответсвует 0 элементу второго массива. Затем проводишь проверку, как по заданию, например если результат равен 42.0 - то вывести соотвествующее имя победителя. Для этого вызывается функция getResults(), которая сканирует массив результатов, запоминает индекс подходящего элемента и выводит соответсвующее имя. Это лишь набросок, сам под себя код адаптируй
Yandex
Объявления
04.06.2014, 13:43     Поиск одной переменной под другой
Ответ Создать тему
Опции темы

Текущее время: 21:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru