Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Andyshon
1 / 1 / 1
Регистрация: 10.01.2014
Сообщений: 34
1

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

04.06.2014, 12:10. Просмотров 875. Ответов 11
Метки нет (Все метки)

Добрые день, сразу прошу извинить за неопределенное название темы!!

Вопрос такой: человек вводит число 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, которую заранее узнать невозможно?
Помогите!
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.06.2014, 12:10
Ответы с готовыми решениями:

Соответствие одной переменной другой
Такая задача: Есть 4 числа: a = "0 1 0 2"; Есть частоты, каждая из которых...

Поиск маршрута от одной точки до другой
Добрый день! подскажите возможно ли разработать скрипт для определения...

Часть имени переменной как значние другой переменной
Нужно чтобы имя переменной состояло как бы из двух частей к примеру переменную...

Найти деление одной переменной на другую при этом вы должны ввести значение переменной и реализовать проверку на правиль
1)На паре дали задание найти деление одной переменной на другую при этом вы...

можно ли в с++ вызвать переменную из одной функции в другую т.е. мы переменну задали в одной функции а использовали в другой... и как это реализовать?
можно ли в с++ вызвать переменную из одной функции в другую т.е. мы переменну...

11
randy92
7 / 7 / 4
Регистрация: 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);
}
1
Andyshon
1 / 1 / 1
Регистрация: 10.01.2014
Сообщений: 34
04.06.2014, 12:24  [ТС] 3
Спасибо, но мне нужно сделать это поиском, возможно так? Чтобы не проверками, а поиском?
0
randy92
7 / 7 / 4
Регистрация: 23.04.2014
Сообщений: 59
04.06.2014, 12:25 4
Как понять "поиском"? Где искать? В массиве?
0
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
0
randy92
7 / 7 / 4
Регистрация: 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";
Но, думается мне, можно все намного проще сделать
1
Andyshon
1 / 1 / 1
Регистрация: 10.01.2014
Сообщений: 34
04.06.2014, 12:44  [ТС] 7
Да, эти проверки я могу сделать...но когда у меня будет win1, win2, win3, win4, win5, и т.д. то писать столько проверок будет плоховато
Да, и потому, когда у всех измениться рейтинг, проверки придеться тоже переписовать!
0
randy92
7 / 7 / 4
Регистрация: 23.04.2014
Сообщений: 59
04.06.2014, 12:45 8
Конечно. Проще структуру кода переписать. Более опытные товарищи подскажут
1
Andyshon
1 / 1 / 1
Регистрация: 10.01.2014
Сообщений: 34
04.06.2014, 12:47  [ТС] 9
надеюсь)
0
lawr
372 / 266 / 478
Регистрация: 09.05.2014
Сообщений: 769
04.06.2014, 13:17 10
ну если это приемлемо- я бы создал массив чисел и массив cтрок, вводимое число присвоил переменной и сравнивал ее с элементами массива. а вообще можно более детально описать задачу?
0
Andyshon
1 / 1 / 1
Регистрация: 10.01.2014
Сообщений: 34
04.06.2014, 13:27  [ТС] 11
Lawr, то что ты написал - все верно, но я не понимаю как создать массив, как сравнивать...можешь на примере моего кода, который я выложил выше написать что то похожее на решение этой задачи? Буду очень благодарен!
0
randy92
7 / 7 / 4
Регистрация: 23.04.2014
Сообщений: 59
04.06.2014, 13:43 12
Лучший ответ Сообщение было отмечено Andyshon как решение

Решение

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(), которая сканирует массив результатов, запоминает индекс подходящего элемента и выводит соответсвующее имя. Это лишь набросок, сам под себя код адаптируй
1
04.06.2014, 13:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.06.2014, 13:43

Поиск символа не могу переделать под поиск сочетания символов
Есть код программы на поиск и замену по одному символу.Не могу понять, как...

Использование одной переменной
У меня дано два оператора n1=dist*dist; n2=dist/dist; хочу использовать...

Многочлен от одной переменной
Описать класс многочленов от одной переменной, задаваемых степенью многочлена...


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

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

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