Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 19.07.2012
Сообщений: 14
1

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

20.07.2012, 10:39. Просмотров 602. Ответов 11
Метки нет (Все метки)

Здравствуйте. Пытаюсь решить формулу (вычислить высоту треугольника) с помощью С++, не могу сделать так чтобы программа сделала выбор когда вводишь два символа (буквы) в переменную 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;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.07.2012, 10:39
Ответы с готовыми решениями:

Нужно чтобы программа предлагала выбор: выйти или продолжить
Есть программа на паскале,нужно что бы после того как она сделала вычисление,она предложила выйти...

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

Ошибка при компиляции. Вылетает программа
#include &lt;stdio.h&gt; #include &lt;math.h&gt; int main() {int a,b,c,y; float x; scanf(&quot;%d%d%d&quot;,...

Нужно чтобы при вводе числа 0 программа завершала работу
Привет всем.Это моя первая тема:) У меня такая проблема,задание я сделал но вот не до конца.Нужно...

11
606 / 406 / 8
Регистрация: 26.04.2012
Сообщений: 2,069
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-ти дней.
по какой книге?
0
21 / 17 / 4
Регистрация: 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;
 }
0
606 / 406 / 8
Регистрация: 26.04.2012
Сообщений: 2,069
20.07.2012, 11:05 4
Цитата Сообщение от Fooly Посмотреть сообщение
for(int i=0; i<100; i++)
* * *cin.get();
нафигаааа????
0
21 / 17 / 4
Регистрация: 26.03.2012
Сообщений: 147
20.07.2012, 11:08 5
Цитата Сообщение от Fatal Error Посмотреть сообщение
нафигаааа????
Да что ж вы все спрашиваете Таким образом я защищаюсь от закрытия консоли при нажатии Enter. И да я люблю извращенный код
0
606 / 406 / 8
Регистрация: 26.04.2012
Сообщений: 2,069
20.07.2012, 11:10 6
Цитата Сообщение от Fooly Посмотреть сообщение
Таким образом я защищаюсь от закрытия консоли при нажатии Enter
а систем паусе чем не устраивает? зачем цикл из 100 итераций делать?
0
21 / 17 / 4
Регистрация: 26.03.2012
Сообщений: 147
20.07.2012, 11:13 7
Цитата Сообщение от Fatal Error Посмотреть сообщение
а систем паусе чем не устраивает? зачем цикл из 100 итераций делать?
мне так удобнее я не помню, но чем-то систем паус на первых порах меня не устраивал, когда начал читать Прату, а такой способ ничем меня не огорчил пока
0
0 / 0 / 0
Регистрация: 19.07.2012
Сообщений: 14
20.07.2012, 11:32  [ТС] 8
"по какой книге? "
Не по какой, сам придумал. Спасибо, сейчас буду проверять.

Добавлено через 7 минут
Со string работает, когда я пробовал я просто писал в одинарных кавычках ( s == 'ha') - тупонул. Спасибо большое, очень оперативно.
0
606 / 406 / 8
Регистрация: 26.04.2012
Сообщений: 2,069
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;
}
0
0 / 0 / 0
Регистрация: 19.07.2012
Сообщений: 14
20.07.2012, 13:05  [ТС] 10
Я имел ввиду - код сам придумал, а насчет по какой книге, то я смотрю видео всякое, что не понятно гуглю, а если совсем не понятно, то вот тему создал. Пытаюсь практиковаться на придумывании простеньких программ, постепенно усложняя.
0
606 / 406 / 8
Регистрация: 26.04.2012
Сообщений: 2,069
20.07.2012, 15:33 11
_Student_, плохая затея, теория на первых порах необходима...
0
0 / 0 / 0
Регистрация: 19.07.2012
Сообщений: 14
20.07.2012, 15:56  [ТС] 12
Я относительно теории практикуюсь. Прошол (изучил) материал, применяю на практике.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.07.2012, 15:56

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Мне нужно сделать, чтобы когда срабатывает ошибка, программа не вырубалась, а начиналась заново.
Доброго времени суток. Мне нужно сделать, что-бы когда срабатывает ошибка, программа не...

Нужно нарисовать флаг, и сделать проверку на то, чтобы при вводе числа 0 - программа закрывалась
Прошу помощи =) Нужно нарисовать флаг, и сделать проверку на то, чтобы при вводе числа 0 -...

Нужно, чтобы программа с циклом заканчивала свое выполнение при вводе любого символа
Здравствуйте, форумчане. Нужно чтобы программа с циклом заканчивала свое выполнение при вводе...

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


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

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

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