Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
sergeu90
27 / 28 / 5
Регистрация: 17.10.2009
Сообщений: 739
#1

Case - C++

01.10.2011, 18:22. Просмотров 3604. Ответов 22
Метки нет (Все метки)

Можно ли как то в конструкции switch case задавать условие например case n<0:и выполнить действие
http://www.cyberforum.ru/cpp-beginners/thread836198.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.10.2011, 18:22
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Case (C++):

При выборе case 1 всегда черный экран? как правильно указать путь в case
Доброго времени суток) проблема с компиляций когда при компилирование...

switch-case, как писать в самом case
Такс дело вот в чём,прога работает всё хорошо,вот только мне не нравится как...

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

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

If и case
Нужно чтобы программа принимала числа от -100 до 1000. Используя if, при...

22
alkagolik
Заблокирован
01.10.2011, 18:27 #2
Цитата Сообщение от sergeu90 Посмотреть сообщение
Можно ли как то в конструкции switch case задавать условие например case n<0:и выполнить действие
именно для этого нет необходимости. Для такого условия есть оператор if(). Оператор swith(n) применим к конкретным значениям n, например
C++
1
2
3
4
5
6
std::cin >> n;
swith(n){
      case 1: оператор;
      case 2: оператор;
      default: std::cout << "n не равно 1 или 2" << "\n";
}
0
sergeu90
27 / 28 / 5
Регистрация: 17.10.2009
Сообщений: 739
01.10.2011, 18:30  [ТС] #3
Просто у меня задание именно через эту конструкцию сделать надо там есть например 10 чисел и мне нужно ввести число и вывести числа не меньше заданного через switch case
0
Zverit
Уничтожитель печенек
277 / 205 / 49
Регистрация: 07.02.2010
Сообщений: 724
01.10.2011, 18:37 #4
После case должно быть константное значение
0
Overmind024
99 / 99 / 27
Регистрация: 10.09.2010
Сообщений: 267
01.10.2011, 18:38 #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
int n;
cin >> n;
switch(n)
{
case 1:
    cout << 1 << endl;
case 2:
    cout << 2 << endl;
case 3:
    cout << 3 << endl;
case 4:
    cout << 4 << endl;
case 5:
    cout << 5 << endl;
case 6:
    cout << 6 << endl;
case 7:
    cout << 7 << endl;
case 8:
    cout << 8 << endl;
case 9:
    cout << 9 << endl;
case 10:
    cout << 10 << endl;
}
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
01.10.2011, 18:38 #6
Цитата Сообщение от sergeu90 Посмотреть сообщение
там есть например 10 чисел и мне нужно ввести число и вывести числа не меньше заданного через switch case
Можно. Но только для маленьких чисел, т.к. под будет выглядеть следующим образом:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
void Func(int n )
{
switch( n )
{
     case 1: cout << 1 << " ";
     case 2: cout << 2 << " ";
     case 3: cout << 3 << " ";
     case 4: cout << 4 << " ";
     case 5: cout << 5 << " ";
     case 6: cout << 6 << " ";
     case 7: cout << 7 << " ";
     case 8: cout << 8 << " ";
     case 9: cout << 9 << " ";
     case 10: cout << 10 << " ";
}
}
 
//вызов
Func(5);
 
//вывод
// 5 6 7 8 9 10
Т.е. придётся явно прописать все возможные числа.
0
Zverit
Уничтожитель печенек
277 / 205 / 49
Регистрация: 07.02.2010
Сообщений: 724
01.10.2011, 18:39 #7
Overmind024, кхм.. А если 100 значений?
0
sergeu90
27 / 28 / 5
Регистрация: 17.10.2009
Сообщений: 739
01.10.2011, 18:42  [ТС] #8
Вы неправильно поняли есть 10 чисел в таблице их вводить не надо они разные мне надо ввести одно число и вывести те числа которые не меньше заданного
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
01.10.2011, 18:46 #9
Цитата Сообщение от sergeu90 Посмотреть сообщение
их вводить не надо они разные
Если они задаются при компиляции, то решение в постах 4-5 иначе при помощи case эта задача не решается.
0
sergeu90
27 / 28 / 5
Регистрация: 17.10.2009
Сообщений: 739
01.10.2011, 18:49  [ТС] #10
Там уже числа готовые есть например 100 200 300 и так далее я ввожу 250 и мне должно вывести 100 и 200
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
01.10.2011, 18:53 #11
Цитата Сообщение от sergeu90 Посмотреть сообщение
ввожу 250 и мне должно вывести 100 и 200
Ты наверное удивишься, но 100 и 200 не "не меньше" 250...
Решение предоставлено дважды. Просто добавь воды...
0
sergeu90
27 / 28 / 5
Регистрация: 17.10.2009
Сообщений: 739
01.10.2011, 18:58  [ТС] #12
Попутал должно вывести 300 и так далее как это с case сделать

Добавлено через 1 минуту
Я могу ввести любое число и мне как то проверку надо делать
0
Zverit
Уничтожитель печенек
277 / 205 / 49
Регистрация: 07.02.2010
Сообщений: 724
01.10.2011, 18:59 #13
sergeu90, на это есть оператор условия (if)
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
01.10.2011, 19:02 #14
Цитата Сообщение от sergeu90 Посмотреть сообщение
Я могу ввести любое число и мне как то проверку надо делать
case предназначен не для таких задач. Тут только кучей if'ов или любым другим способом, использующем if.
0
easybudda
Модератор
Эксперт CЭксперт С++
10021 / 5944 / 1483
Регистрация: 25.07.2009
Сообщений: 11,230
01.10.2011, 19:03 #15
Цитата Сообщение от Deviaphan Посмотреть сообщение
при помощи case эта задача не решается.
Да ну?!
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
 
int main(void){
    int arr[5] = { 2, 3, 5, 1, 4 }, num = 3, i;
    
    for ( i = 0; i < 5; ++i ){
        switch ( arr[i] < num ){
            case 0:
                printf("%d ", arr[i]);
                break;
        }
    }
    
    printf("\n");
}
Хотя дурдом, конечно...
sergeu90, это вас препод надоумил case использовать? Этот оператор лучше немного в других ситуациях, для операций сравнения if предназначен. switch/case больше подходит для выбора одного из конечного числа значений...

Не по теме:

Собственно то же самое alkagolik, ещё во втором посте сказал. Вот, почему так здо'рово темы с первой страницы читать...

1
sergeu90
27 / 28 / 5
Регистрация: 17.10.2009
Сообщений: 739
01.10.2011, 19:06  [ТС] #16
Я это знаю но задание написано через case

Добавлено через 3 минуты
Это 2 лаба и там нельзя циклы и массивы использовать
0
easybudda
Модератор
Эксперт CЭксперт С++
10021 / 5944 / 1483
Регистрация: 25.07.2009
Сообщений: 11,230
01.10.2011, 19:11 #17
Цитата Сообщение от sergeu90 Посмотреть сообщение
Это 2 лаба и там нельзя циклы и массивы использовать
И в правду дурдом... Ну перепешите всё то же самое ещё 9 раз, а не в цикле и будет вам счастье... Просто из любопытства: это где так учат?
0
alkagolik
Заблокирован
01.10.2011, 19:12 #18
Цитата Сообщение от sergeu90 Посмотреть сообщение
Это 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
#include <stdio.h>
#include <stdlib.h>
 
int main(){
    int a[5] = {100, 200, 300, 400, 500};
    int n = 250, i = 0;
 
    if (n < a[0])
        n = a[0];
    else if(n > a[0] && n < a[1])
        n = a[1];
    else if(n > a[1] && n < a[2])
        n = a[2];
    else if(n > a[2] && n < a[3])
        n = a[3];
    else if(n > a[3] && n < a[4])
        n = a[4];
 
    switch(n){
        case 100: printf(" %d", a[0]);
        case 200: printf(" %d", a[1]);
        case 300: printf(" %d", a[2]);
        case 400: printf(" %d", a[3]);
        case 500: printf(" %d", a[4]);
    }
    return 0;
}
0
sergeu90
27 / 28 / 5
Регистрация: 17.10.2009
Сообщений: 739
01.10.2011, 19:15  [ТС] #19
В белоруссии бнту
0
easybudda
Модератор
Эксперт CЭксперт С++
10021 / 5944 / 1483
Регистрация: 25.07.2009
Сообщений: 11,230
01.10.2011, 19:15 #20
Цитата Сообщение от alkagolik Посмотреть сообщение
int a[5] = {100, 200, 300, 400, 500};
Ага, щас!
C
1
int a1, a2, a3...
1
01.10.2011, 19:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.10.2011, 19:15
Привет! Вот еще темы с решениями:

CASE
Не могу понять почему программа выводит пустой массив, при входе в case функция...

case -> if
Надо переделать с си++ на си, т.е. case на if while(choice != 4) {...

Case
Есть ли в C++ аналог дэльфишному Case i of? Я конечно могу прописать на...

CASE(C++)
Помогите решить задачку, пожалуйста. С начала 1990 года по некоторый день...


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

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

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