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

Case - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
sergeu90
27 / 28 / 3
Регистрация: 17.10.2009
Сообщений: 739
01.10.2011, 18:22     Case #1
Можно ли как то в конструкции switch case задавать условие например case n<0:и выполнить действие
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
01.10.2011, 18:27     Case #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";
}
sergeu90
27 / 28 / 3
Регистрация: 17.10.2009
Сообщений: 739
01.10.2011, 18:30  [ТС]     Case #3
Просто у меня задание именно через эту конструкцию сделать надо там есть например 10 чисел и мне нужно ввести число и вывести числа не меньше заданного через switch case
Zverit
Уничтожитель печенек
 Аватар для Zverit
276 / 204 / 21
Регистрация: 07.02.2010
Сообщений: 723
01.10.2011, 18:37     Case #4
После case должно быть константное значение
Overmind024
99 / 99 / 6
Регистрация: 10.09.2010
Сообщений: 267
01.10.2011, 18:38     Case #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;
}
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
01.10.2011, 18:38     Case #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
Т.е. придётся явно прописать все возможные числа.
Zverit
Уничтожитель печенек
 Аватар для Zverit
276 / 204 / 21
Регистрация: 07.02.2010
Сообщений: 723
01.10.2011, 18:39     Case #7
Overmind024, кхм.. А если 100 значений?
sergeu90
27 / 28 / 3
Регистрация: 17.10.2009
Сообщений: 739
01.10.2011, 18:42  [ТС]     Case #8
Вы неправильно поняли есть 10 чисел в таблице их вводить не надо они разные мне надо ввести одно число и вывести те числа которые не меньше заданного
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
01.10.2011, 18:46     Case #9
Цитата Сообщение от sergeu90 Посмотреть сообщение
их вводить не надо они разные
Если они задаются при компиляции, то решение в постах 4-5 иначе при помощи case эта задача не решается.
sergeu90
27 / 28 / 3
Регистрация: 17.10.2009
Сообщений: 739
01.10.2011, 18:49  [ТС]     Case #10
Там уже числа готовые есть например 100 200 300 и так далее я ввожу 250 и мне должно вывести 100 и 200
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
01.10.2011, 18:53     Case #11
Цитата Сообщение от sergeu90 Посмотреть сообщение
ввожу 250 и мне должно вывести 100 и 200
Ты наверное удивишься, но 100 и 200 не "не меньше" 250...
Решение предоставлено дважды. Просто добавь воды...
sergeu90
27 / 28 / 3
Регистрация: 17.10.2009
Сообщений: 739
01.10.2011, 18:58  [ТС]     Case #12
Попутал должно вывести 300 и так далее как это с case сделать

Добавлено через 1 минуту
Я могу ввести любое число и мне как то проверку надо делать
Zverit
Уничтожитель печенек
 Аватар для Zverit
276 / 204 / 21
Регистрация: 07.02.2010
Сообщений: 723
01.10.2011, 18:59     Case #13
sergeu90, на это есть оператор условия (if)
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
01.10.2011, 19:02     Case #14
Цитата Сообщение от sergeu90 Посмотреть сообщение
Я могу ввести любое число и мне как то проверку надо делать
case предназначен не для таких задач. Тут только кучей if'ов или любым другим способом, использующем if.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
01.10.2011, 19:03     Case #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, ещё во втором посте сказал. Вот, почему так здо'рово темы с первой страницы читать...

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

Добавлено через 3 минуты
Это 2 лаба и там нельзя циклы и массивы использовать
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
01.10.2011, 19:11     Case #17
Цитата Сообщение от sergeu90 Посмотреть сообщение
Это 2 лаба и там нельзя циклы и массивы использовать
И в правду дурдом... Ну перепешите всё то же самое ещё 9 раз, а не в цикле и будет вам счастье... Просто из любопытства: это где так учат?
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
01.10.2011, 19:12     Case #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;
}
sergeu90
27 / 28 / 3
Регистрация: 17.10.2009
Сообщений: 739
01.10.2011, 19:15  [ТС]     Case #19
В белоруссии бнту
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.10.2011, 19:15     Case
Еще ссылки по теме:

C++ CASE
C++ Switch case внутри switch case

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

Или воспользуйтесь поиском по форуму:
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
01.10.2011, 19:15     Case #20
Цитата Сообщение от alkagolik Посмотреть сообщение
int a[5] = {100, 200, 300, 400, 500};
Ага, щас!
C
1
int a1, a2, a3...
Yandex
Объявления
01.10.2011, 19:15     Case
Ответ Создать тему
Опции темы

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