Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
Заблокирован
1

Switch

23.02.2014, 00:33. Показов 1058. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ошибка в 19 строке:
Код
 n cannot appear in a constant-expression
(потому что n это переменная?).
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
#include <iostream>
#include <math.h>
#include <conio.h>
 
using namespace std;
 
int main()
{
    setlocale (LC_ALL , "Russian");
    const double x=0.5, a=4.3, y=2.6, d=0.3;
    int n;
    double v;
    bool f=true;
    cout << "Ââåäèòå n (äîñòóïíûå çíà÷åíèÿ: 1,2,5)"<<endl;
    cin >> n;
    
    switch (n)
    {
           case n=2: v=1.5*x+9*x*x+1.25; break;
           case n=5: v=d+a*(sin(x)*180/PI);break;
           case n=1: v=(a-x+y)/d;break;
           default:  cout << "Íåò ðåøåíèÿ";
                     f=false;
           if (f) cout << "Çíà÷åíèå v="<<v;
    }
    _getch();
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.02.2014, 00:33
Ответы с готовыми решениями:

Оптимальная конструкция switch-case-while / while-switch-case
Имеется конструкция типа: switch() { case 1: while() { ... }

While{switch{switch{break;}}} break выходит из while
В общем необходимо конструкцию switch запускать в цикле, в каждом case X: стоит свой break;, да бы...

Switch case внутри switch case
Привет всем! Нужна помощь. Пишу калькулятор с консольным меню. Так вот, используется цикл...

switch
swith(n) { case 1: { return 0; // Надо ли в этом случае писать break ? // В каких случаях...

16
38 / 38 / 22
Регистрация: 16.04.2013
Сообщений: 327
Записей в блоге: 1
23.02.2014, 00:34 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
#include <iostream>
#include <math.h>
#include <conio.h>
 
using namespace std;
 
int main()
{
    setlocale (LC_ALL , "Russian");
    const double x=0.5, a=4.3, y=2.6, d=0.3;
    int n;
    double v;
    bool f=true;
    const int PI=3.14;
    cout << "Введите n (доступные значения: 1,2,5)"<<endl;
    cin >> n;
    
    switch (n)
    {
           case 2: v=1.5*x+9*x*x+1.25; break;
           case 5: v=d+a*(sin(x)*180/PI);break;
           case 1: v=(a-x+y)/d;break;
           default:  cout << "Нет решения";
                     f=false;
           if (f) cout << "Значение v="<<v;
    }
    _getch();
    return 0;
}
0
Заблокирован
23.02.2014, 00:37  [ТС] 3
Цитата Сообщение от Miwa123 Посмотреть сообщение
const int PI=3.14;
У меня если добавить эту строчку, то появляется ошибка.
И Пи нужно обязательно прописывать?

И почему пишется int если 3,14 это не целое число.
0
38 / 38 / 22
Регистрация: 16.04.2013
Сообщений: 327
Записей в блоге: 1
23.02.2014, 00:38 4
Уберите ее и замените PI на 3.14
0
2443 / 1841 / 406
Регистрация: 15.12.2013
Сообщений: 8,238
23.02.2014, 00:40 5
Цитата Сообщение от Алена_Коваленко Посмотреть сообщение
У меня если добавить эту строчку, то появляется ошибка.
Какая ошибка?
0
Заблокирован
23.02.2014, 00:43  [ТС] 6
S_el, converting to int from double

Добавлено через 1 минуту
Цитата Сообщение от Miwa123 Посмотреть сообщение
Уберите ее и замените PI на 3.14
Заменила, ошибка та же.
0
2443 / 1841 / 406
Регистрация: 15.12.2013
Сообщений: 8,238
23.02.2014, 00:43 7
Ну естественно,это-же int а вы его как double хотите...
0
Заблокирован
23.02.2014, 00:44  [ТС] 8
S_el, в смысле?
0
2443 / 1841 / 406
Регистрация: 15.12.2013
Сообщений: 8,238
23.02.2014, 00:46 9
Цитата Сообщение от Алена_Коваленко Посмотреть сообщение
S_el, в смысле?
В прямом.int-целочисленное.
0
38 / 38 / 22
Регистрация: 16.04.2013
Сообщений: 327
Записей в блоге: 1
23.02.2014, 00:47 10
C++
1
const double PI=3.14;
извиняюсь. тупанул я
0
Заблокирован
23.02.2014, 00:48  [ТС] 11
S_el, я поняла что int это целочисленное. Имею ввиду кого я хочу как double.

Добавлено через 1 минуту
Цитата Сообщение от Miwa123 Посмотреть сообщение
const double PI=3.14;
Бывает))) Но на 19 строку значение Pi не влияет же....)
0
2443 / 1841 / 406
Регистрация: 15.12.2013
Сообщений: 8,238
23.02.2014, 00:51 12
Цитата Сообщение от Алена_Коваленко Посмотреть сообщение
S_el, я поняла что int это целочисленное. Имею ввиду кого я хочу как double.
int.
0
Заблокирован
23.02.2014, 00:54  [ТС] 13
S_el, это наверно уже выглядит глупо, но я не понимаю
0
2443 / 1841 / 406
Регистрация: 15.12.2013
Сообщений: 8,238
23.02.2014, 00:57 14
Цитата Сообщение от Алена_Коваленко Посмотреть сообщение
это наверно уже выглядит глупо, но я не понимаю
Уже не актуально,но все равно объясню,в первом варианте кода PI было объявлено как int,а вы хотели туда поместить double.

Добавлено через 38 секунд
А зачем вам 12,13,23,24 строчки кода?
0
Заблокирован
23.02.2014, 01:03  [ТС] 15
S_el, действительно, 12 не нужна.
13,23,24 при вводе неправильных значений чтоб не выводилась строка Значение v.
0
2443 / 1841 / 406
Регистрация: 15.12.2013
Сообщений: 8,238
23.02.2014, 01:05 16
Почему не сделать так?

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
#include <iostream>
#include <math.h>
using namespace std;
 
int main()
{
    setlocale (LC_ALL , "Russian");
    const double x=0.5, a=4.3, y=2.6, d=0.3,PI=3.14;
    int n;
    cout << "Введите n (доступные значения: 1,2,5)"<<endl;
    cin >> n;
    
    switch (n)
    {
           case 2:
               cout << "Значение "<<1.5*x+9*x*x+1.25;
               break;
           case 5: 
               cout << "Значение "<<d+a*(sin(x)*180/PI);
               break;
           case 1: 
               cout << "Значение "<<(a-x+y)/d;
               break;
           default:  
               {
                   cout << "Введено число отличное от 1,2,5";
                   cin.get();
                   cin.get();
                   return 0;
               }    
    }
    cin.get();
    cin.get();
    return 0;
}
Добавлено через 57 секунд
Цитата Сообщение от Алена_Коваленко Посмотреть сообщение
13,23,24 при вводе неправильных значений чтоб не выводилась строка Значение v.
А вы эту программу хоть запускали?У меня она вообще ничего не выводит.А VS12 так даже ругается.
1
Заблокирован
23.02.2014, 01:31  [ТС] 17
S_el, нет, не запускала, ошибки никак исправить не могу. Да так тоже можно сделать, но решила по-другому попробовать.

Добавлено через 4 минуты
S_el, просто понять не могу почему Ваш код рабочий а мой нет. (удалила строчки 12,13,23,24)
А может причина в том что я после CASE писала n=2, а нужно было просто 2. Ведь по идее это и есть значение n/

Добавлено через 18 минут
S_el, все, разобралась, проблема была действительно в том, что я писала n=2, а надо было просто значение, которое оно должно принимать.
p.s. На счет PI, я не пыталась из Double сделать int. Это было предложено не мной
0
23.02.2014, 01:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.02.2014, 01:31
Помогаю со студенческими работами здесь

switch
5. как пользоваться switch()

switch
Помогите!!

Switch
Определить порядковый номер того дня високосного года, который имеет заданую дату и месяц. В...

Switch
Простите за глупый вопрос, но можно ли в switch работать с действительными числами и если да то как?


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru