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

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

Войти
Регистрация
Восстановить пароль
 
Andyshon
1 / 1 / 1
Регистрация: 10.01.2014
Сообщений: 34
#1

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

04.06.2014, 12:10. Просмотров 347. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Поиск одной переменной под другой (C++):

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

Поиск маршрута от одной точки до другой - C++
Добрый день! подскажите возможно ли разработать скрипт для определения расстояния (маршрута) одной точки до другой? На основе данных яндекс...

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

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

Поиск символа не могу переделать под поиск сочетания символов - C++
Есть код программы на поиск и замену по одному символу.Не могу понять, как сделать код на поиск сочетания символов. Чтобы найдя в введённой...

Использование одной переменной - C++
У меня дано два оператора n1=dist*dist; n2=dist/dist; хочу использовать одну переменную n которая принимала бы два эти...

11
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);
}
1
Andyshon
1 / 1 / 1
Регистрация: 10.01.2014
Сообщений: 34
04.06.2014, 12:24  [ТС] #3
Спасибо, но мне нужно сделать это поиском, возможно так? Чтобы не проверками, а поиском?
0
randy92
7 / 7 / 2
Регистрация: 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 / 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";
Но, думается мне, можно все намного проще сделать
1
Andyshon
1 / 1 / 1
Регистрация: 10.01.2014
Сообщений: 34
04.06.2014, 12:44  [ТС] #7
Да, эти проверки я могу сделать...но когда у меня будет win1, win2, win3, win4, win5, и т.д. то писать столько проверок будет плоховато
Да, и потому, когда у всех измениться рейтинг, проверки придеться тоже переписовать!
0
randy92
7 / 7 / 2
Регистрация: 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
367 / 261 / 125
Регистрация: 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 / 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(), которая сканирует массив результатов, запоминает индекс подходящего элемента и выводит соответсвующее имя. Это лишь набросок, сам под себя код адаптируй
1
04.06.2014, 13:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.06.2014, 13:43
Привет! Вот еще темы с ответами:

Многочлен от одной переменной - C++
Описать класс многочленов от одной переменной, задаваемых степенью многочлена и массивом коэффициентов. Обеспечить следующие возможности:...

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

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

Передача переменной из одной функции в другую - C++
Доброго времени суток, мне нужно передать переменные *x и n из функции main в функции А10, A8, M5, подскажите как это сделать #include...


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

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

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