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

Оператор switch - C++

Восстановить пароль Регистрация
 
рiece something
 Аватар для рiece something
1 / 1 / 0
Регистрация: 10.02.2011
Сообщений: 59
31.05.2011, 22:11     Оператор switch #1
Возникла проблема. Не хочет высчитываться "v". Что не так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream.h>
#include <math.h>
 
main ()
{
    int k;
    double v, x=0.73, y=0.4, t=2.6, e=0.1;
    cout << "Vvedite znachenie K" << endl;
    cin >> k;
    switch (k)
    {
    case '0': v=x+pow(t,2); break;   
    case '1': v=(x+y)/(1-x*y); break;
    case '3': v=sin(x)+e; break;
cout << "V=" << v << endl;
}
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2011, 22:11     Оператор switch
Посмотрите здесь:

Оператор switch C++
C++ Оператор switch
C++ Оператор switch
C++ Оператор switch
Оператор switch C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nursik77
 Аватар для Nursik77
273 / 233 / 21
Регистрация: 05.04.2011
Сообщений: 645
31.05.2011, 22:17     Оператор switch #2
C++
1
2
3
4
5
6
7
8
9
...
        {
        case '0': v=x+pow(t,2); break;   
        case '1': v=(x+y)/(1-x*y); break;
        case '3': v=sin(x)+e; break;
        }
cout << "V=" << v << endl;
return 0;
}
рiece something
 Аватар для рiece something
1 / 1 / 0
Регистрация: 10.02.2011
Сообщений: 59
31.05.2011, 22:29  [ТС]     Оператор switch #3
Nursik77, все равно не считает...
выдает при любом вводимом значении
http://s2.ipicture.ru/uploads/20110531/2T6adjGt.png
Nursik77
 Аватар для Nursik77
273 / 233 / 21
Регистрация: 05.04.2011
Сообщений: 645
31.05.2011, 22:38     Оператор switch #4
Интересно, но у меня ваш код работает.
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16824 / 5245 / 320
Регистрация: 30.03.2009
Сообщений: 14,125
Записей в блоге: 26
31.05.2011, 22:40     Оператор switch #5
рiece something, у тебя переменная k имеет тип int, а потому если введёшь в консоли 1 (и enter), то в переменную запишется 1. Но в case'ах у тебя char'овские величины. А '1' и 1 - это две разные вещи
рiece something
 Аватар для рiece something
1 / 1 / 0
Регистрация: 10.02.2011
Сообщений: 59
31.05.2011, 23:47  [ТС]     Оператор switch #6
Цитата Сообщение от Evg Посмотреть сообщение
Но в case'ах у тебя char'овские величины. А '1' и 1 - это две разные вещи
Как это?
И кстати, поменяла int на char та же проблема.
и еще выдает такой warning:
C:\Program Files (x86)\Microsoft Visual Studio\MyProjects\111\111.cpp(19) : warning C4715: 'main' : not all control paths return a value
grrrrr
 Аватар для grrrrr
45 / 45 / 7
Регистрация: 21.04.2009
Сообщений: 265
01.06.2011, 00:10     Оператор switch #7
а так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
     int k;
        double v=0.0, x=0.73, y=0.4, t=2.6, e=0.1;
        std::cout << "Vvedite znachenie K\n";
        std::cin >> k;
        switch (k)
        {
           case 0: 
               v=x+pow(t,2); break;   
           case 1: 
               v=(x+y)/(1-x*y); break;
           case 3: 
               v=sin(x)+e; break;
    
           default: std::cout << "error! enter 0, 1 or 3\n"; 
        }
        
        std::cout << "V=" << v << "\n";
CJ_Sashok
Живу от Клика до Клика
 Аватар для CJ_Sashok
34 / 34 / 5
Регистрация: 01.06.2010
Сообщений: 157
01.06.2011, 01:42     Оператор switch #8
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
#include <iostream>
#include <math.h>
#include <conio.h>
using namespace std;
int main ()
{
        int k;
        double v, x=0.73, y=0.4, t=2.6, e=0.1;
        cout << "Vvedite znachenie K" << endl;
        cin >> k;
        switch (k){
        case 0:
            v=x+pow(t,2);
                break;   
        case 1: 
            v=(x+y)/(1-x*y); 
            break;
        case 3: 
            v=sin(x)+e; 
            break;
}
        cout << "V=" << v << endl;
        _getch();
return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.06.2011, 09:06     Оператор switch
Еще ссылки по теме:

C++ Оператор switch C++
Оператор switch C++ C++
Оператор switch и while C++

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

Или воспользуйтесь поиском по форуму:
рiece something
 Аватар для рiece something
1 / 1 / 0
Регистрация: 10.02.2011
Сообщений: 59
01.06.2011, 09:06  [ТС]     Оператор switch #9
grrrrr, работает. и ваша, CJ_Sashok, тоже. В принципе и моя заработала, когда я
Цитата Сообщение от рiece something Посмотреть сообщение
cout << "V=" << v << endl;
за фигурные скобки вынесла.
Большое всем спасибо.

Только, если я ввожу другое значение (не 0,1 или 3) пишет, что решений нет, но все равно выдает решение по последней формуле.
Yandex
Объявления
01.06.2011, 09:06     Оператор switch
Ответ Создать тему
Опции темы

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