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

Ошибка при компиляции, нужно чтобы программа сделала выбор - C++

Войти
Регистрация
Восстановить пароль
 
_Student_
0 / 0 / 0
Регистрация: 19.07.2012
Сообщений: 14
20.07.2012, 10:39     Ошибка при компиляции, нужно чтобы программа сделала выбор #1
Здравствуйте. Пытаюсь решить формулу (вычислить высоту треугольника) с помощью С++, не могу сделать так чтобы программа сделала выбор когда вводишь два символа (буквы) в переменную s, например вводишь ha, программа выводит одно сообщение, вводишь hb другое и т. д. У меня в коде стоит тип данных char, я понимаю что он поддерживает только один символ, пытался с помощью string (наверное это совсем криво), не получилось.
В общем подскажите какой тип данных использовать и в принципе как решить эту проблему. В место вывода ha, hb ... на экран, в дальнейшем буду давать другие инструкции относительно формулы.
Если вопрос не коректный, то извините я в изучаю программу не более 4, 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
27
28
29
30
31
32
33
34
35
36
37
#include <iostream>
#include <math.h>
#include <string>
using namespace std;
 
 
int main()
{
    setlocale(0,"");
 
    float a, b, c, p, h;
     char s;
 
 
    cout<<"Введите размеры сторон треугольника"<<endl;
    cout<<"Введите сторону а"<<endl;
    cin>>a;
    cout<<"Введите сторону b"<<endl;
    cin>>b;
    cout<<"Введите сторону c"<<endl;
    cin>>c;
    cout<<"Введите искомую высоту треугольника, например ha, hb, hc"<<endl;
    cin>>s;
 
    if ( s =='ha')
        cout<<"ha";
    else if  (s == 'hb')
    cout<<"hb";
    else if (s=='hc')
        cout<<"hc";
    else
        {cout<<"error";
    return 0;
}
    
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Troll_Face
 Аватар для Troll_Face
599 / 399 / 4
Регистрация: 26.04.2012
Сообщений: 2,070
20.07.2012, 11:04     Ошибка при компиляции, нужно чтобы программа сделала выбор #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
24
25
26
27
28
29
30
31
32
33
#include <iostream>
#include <math.h>
using namespace std;
 
 
int main()
{
setlocale(0,"");
 
float a, b, c, p, h;
char s[3];
 
 
cout<<"Введите размеры сторон треугольника"<<endl;
cout<<"Введите сторону а"<<endl;
(cin>>a).get();
cout<<"Введите сторону b"<<endl;
(cin>>b).get();
cout<<"Введите сторону c"<<endl;
(cin>>c).get();
cout<<"Введите искомую высоту треугольника, например ha, hb, hc"<<endl;
cin.get(s, 2);
 
if ( s[1] =='a')
cout<<"ha";
else if (s[1] == 'b')
cout<<"hb";
else if (s[1]=='c')
cout<<"hc";
else
cout<<"error";
return 0;
}
не тестировал, но должно пойти.

Добавлено через 3 минуты
Цитата Сообщение от _Student_ Посмотреть сообщение
Если вопрос не коректный, то извините я в изучаю программу не более 4, 5-ти дней.
по какой книге?
Fooly
 Аватар для Fooly
21 / 17 / 1
Регистрация: 26.03.2012
Сообщений: 147
20.07.2012, 11:04     Ошибка при компиляции, нужно чтобы программа сделала выбор #3
Со string у меня работает, возможно подойдёт тебе
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
#include <iostream>
 #include <math.h>
 #include <string>
 using namespace std;
 
 
 int main()
 {
 setlocale(0,"");
 
 float a, b, c, p, h;
 string s;
 
 
 cout<<"Введите размеры сторон треугольника"<<endl;
 cout<<"Введите сторону а"<<endl;
 cin>>a;
 cout<<"Введите сторону b"<<endl;
 cin>>b;
 cout<<"Введите сторону c"<<endl;
 cin>>c;
 cout<<"Введите искомую высоту треугольника, например ha, hb, hc"<<endl;
 cin>>s;
 
 if ( s =="ha")
 cout<<"ha";
 else if (s == "hb")
 cout<<"hb";
 else if (s=="hc")
 cout<<"hc";
 else
 cout<<"error";
 
 for(int i=0; i<100; i++) // этот кусок не обязателен, я его прописываю, чтобы консоль не закрывалсь при нажатиях Enter
     cin.get();       // по-другому не умею =)
 return 0;
 }
Troll_Face
 Аватар для Troll_Face
599 / 399 / 4
Регистрация: 26.04.2012
Сообщений: 2,070
20.07.2012, 11:05     Ошибка при компиляции, нужно чтобы программа сделала выбор #4
Цитата Сообщение от Fooly Посмотреть сообщение
for(int i=0; i<100; i++)
* * *cin.get();
нафигаааа????
Fooly
 Аватар для Fooly
21 / 17 / 1
Регистрация: 26.03.2012
Сообщений: 147
20.07.2012, 11:08     Ошибка при компиляции, нужно чтобы программа сделала выбор #5
Цитата Сообщение от Fatal Error Посмотреть сообщение
нафигаааа????
Да что ж вы все спрашиваете Таким образом я защищаюсь от закрытия консоли при нажатии Enter. И да я люблю извращенный код
Troll_Face
 Аватар для Troll_Face
599 / 399 / 4
Регистрация: 26.04.2012
Сообщений: 2,070
20.07.2012, 11:10     Ошибка при компиляции, нужно чтобы программа сделала выбор #6
Цитата Сообщение от Fooly Посмотреть сообщение
Таким образом я защищаюсь от закрытия консоли при нажатии Enter
а систем паусе чем не устраивает? зачем цикл из 100 итераций делать?
Fooly
 Аватар для Fooly
21 / 17 / 1
Регистрация: 26.03.2012
Сообщений: 147
20.07.2012, 11:13     Ошибка при компиляции, нужно чтобы программа сделала выбор #7
Цитата Сообщение от Fatal Error Посмотреть сообщение
а систем паусе чем не устраивает? зачем цикл из 100 итераций делать?
мне так удобнее я не помню, но чем-то систем паус на первых порах меня не устраивал, когда начал читать Прату, а такой способ ничем меня не огорчил пока
_Student_
0 / 0 / 0
Регистрация: 19.07.2012
Сообщений: 14
20.07.2012, 11:32  [ТС]     Ошибка при компиляции, нужно чтобы программа сделала выбор #8
"по какой книге? "
Не по какой, сам придумал. Спасибо, сейчас буду проверять.

Добавлено через 7 минут
Со string работает, когда я пробовал я просто писал в одинарных кавычках ( s == 'ha') - тупонул. Спасибо большое, очень оперативно.
Troll_Face
 Аватар для Troll_Face
599 / 399 / 4
Регистрация: 26.04.2012
Сообщений: 2,070
20.07.2012, 12:50     Ошибка при компиляции, нужно чтобы программа сделала выбор #9
Цитата Сообщение от _Student_ Посмотреть сообщение
Со string работает
пардон
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
#include <iostream>
#include <math.h>
using namespace std;
 
 
int main()
{
setlocale(0,"");
 
float a, b, c, p, h;
char s[3];
 
 
cout<<"Введите размеры сторон треугольника"<<endl;
cout<<"Введите сторону а"<<endl;
(cin>>a).get();
cout<<"Введите сторону b"<<endl;
(cin>>b).get();
cout<<"Введите сторону c"<<endl;
(cin>>c).get();
cout<<"Введите искомую высоту треугольника, например ha, hb, hc"<<endl;
cin.get(s, 3);
 
if ( s[1] =='a')
cout<<"ha";
else if (s[1] == 'b')
cout<<"hb";
else if (s[1]=='c')
cout<<"hc";
else
cout<<"error";
return 0;
}
_Student_
0 / 0 / 0
Регистрация: 19.07.2012
Сообщений: 14
20.07.2012, 13:05  [ТС]     Ошибка при компиляции, нужно чтобы программа сделала выбор #10
Я имел ввиду - код сам придумал, а насчет по какой книге, то я смотрю видео всякое, что не понятно гуглю, а если совсем не понятно, то вот тему создал. Пытаюсь практиковаться на придумывании простеньких программ, постепенно усложняя.
Troll_Face
 Аватар для Troll_Face
599 / 399 / 4
Регистрация: 26.04.2012
Сообщений: 2,070
20.07.2012, 15:33     Ошибка при компиляции, нужно чтобы программа сделала выбор #11
_Student_, плохая затея, теория на первых порах необходима...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.07.2012, 15:56     Ошибка при компиляции, нужно чтобы программа сделала выбор
Еще ссылки по теме:

C++ Ошибка при компиляции
Ошибка при компиляции C++
C++ Программа для вычисления квадратного корня. Ошибка компиляции в аргументе функции
C++ Выбор кода при компиляции

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

Или воспользуйтесь поиском по форуму:
_Student_
0 / 0 / 0
Регистрация: 19.07.2012
Сообщений: 14
20.07.2012, 15:56  [ТС]     Ошибка при компиляции, нужно чтобы программа сделала выбор #12
Я относительно теории практикуюсь. Прошол (изучил) материал, применяю на практике.
Yandex
Объявления
20.07.2012, 15:56     Ошибка при компиляции, нужно чтобы программа сделала выбор
Ответ Создать тему
Опции темы

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