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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
vpnwz151
10 / 11 / 1
Регистрация: 03.11.2011
Сообщений: 129
#1

Вопрос по оператору switch - C++

11.11.2011, 16:59. Просмотров 749. Ответов 14
Метки нет (Все метки)

Задача звучит так
Даны три числа. Вывести наибольшее из них.
правельно ли сложен код? Можно ли написать это все в операторе switch если да то как?
зарание спасибо
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
void main()
 
{
    int a, b, c;
 
    cout<<"digit: ";
    cin>>a;
    cout<<"digit 2: ";
    cin>>b;
    cout<<"digit 3: ";
    cin>>c;
    
    if (a > b && a > c)
        cout<<a<<endl;
    else if (b > a && b > c)
        cout<<b<<endl;
    else if (c > a && c > b)
        cout<<c<<endl;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.11.2011, 16:59     Вопрос по оператору switch
Посмотрите здесь:

Вопрос по оператору For - C++
Доброго времени суток. Решил перейти от QBasic к C++. Разбираю массивы. Задача: найти количество элементов между минимумом и...

Вопрос по оператору cin - C++
Компилятор Microsoft Visual C++ 6.0. При использовании оператора cin, после того как вводишь значение, происходит автоматический...

Операторы эквивалентные оператору присваивания\условному оператору? - C++
Здравствуйте уважаемые форумчане) Есть два задания, в которых я не могу понять даже смысла, будьте добры, может кто знает в чем соль?) ...

вопрос по switch - C++
cout&lt;&lt;&quot;Введите первую букву имени(Большими буквами)&quot;&lt;&lt;&quot;\n&quot;; cin&gt;&gt;b; switch(b) { case 'А':v1=4; v2=8;break; case 'В':v1=2; ...

Вопрос по Switch - C++
Есть уменя switch. В кейсе есть условный оператор типа switch (choice) { case '1': if (number==1) &lt;&lt;cout&quot;You may continue&quot;; else...

Простой пример по оператору ? - C++
Дайте простой пример по оператору ? и с пояснением) Заранее спасибо&quot;

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
11.11.2011, 17:13     Вопрос по оператору switch #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
#include <iostream>
using namespace std;
int main() {
    int a, b, c;
 
    cout<<"digit 1: ";
    cin>>a;
    cout<<"digit 2: ";
    cin>>b;
    cout<<"digit 3: ";
    cin>>c;
 
    switch(a > b && a > c) {
    case true:
        cout<<a<<endl;
        break;
    case false:
        switch(b > a && b > c) {
        case true:
            cout<<b<<endl;
            break;
        case false:
            cout<<c<<endl;
            break;
        }
        break;
    }
 
    return 0;
}
Dar101
40 / 40 / 1
Регистрация: 12.05.2011
Сообщений: 109
11.11.2011, 17:16     Вопрос по оператору switch #3
Можно, пример выше, но мне кажется switch предназначен немного для других целей.
Код правильный, можно только чуть-чуть упростить последний else if, там проверять лог условие ни к чему. Ясно, что если наибольшее число не a и не b, то это c:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using namespace std;
void main()
 
{
        int a, b, c;
 
        cout<<"digit: ";
        cin>>a;
        cout<<"digit 2: ";
        cin>>b;
        cout<<"digit 3: ";
        cin>>c;
        
        if (a > b && a > c) cout<<a<<endl;
        else if (b > a && b > c) cout<<b<<endl;
        else cout<<c<<endl;
}
Abendstern
3 / 3 / 0
Регистрация: 06.11.2011
Сообщений: 38
11.11.2011, 17:19     Вопрос по оператору switch #4
Я бы сделал с помощью функции, так на мой взгляд понятнее и компактнее:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
 
int max(int x, int y)
{
    return x > y ? x : y;
}
 
int main()
{
    int a, b, c;
 
    std::cout << "digit 1: ";
    std::cin >> a;
    std::cout << "digit 2: ";
    std::cin >> b;
    std::cout << "digit 3: ";
    std::cin >> c;
 
    std::cout << max(a, max(b, c)) << "\n";
 
    system("pause");
    return 0;
}
А вот switch по-моему тут не к месту
vpnwz151
10 / 11 / 1
Регистрация: 03.11.2011
Сообщений: 129
11.11.2011, 17:29  [ТС]     Вопрос по оператору switch #5
Спасибо за помощь

Возник еще один вопросик задача состоит так
Даны три числа. Найти количество четных среди них.
как реализовать?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
void main()
 
{
        int a, b, c;
 
        cout<<"digit: ";
        cin>>a;
        cout<<"digit 2: ";
        cin>>b;
        cout<<"digit 3: ";
        cin>>c;
        
......    //пример кода дальше сам разберусь спасибо!
 
}
И можно более детально описать роботу оператора Switch
GhostVIRUS
6 / 6 / 0
Регистрация: 17.09.2011
Сообщений: 81
11.11.2011, 17:34     Вопрос по оператору switch #6
Можно сделать проверяя остаток от целочисленного деления на 2.
C++
1
2
if(a%2 == 0)
    n++;
и так далее...
vpnwz151
10 / 11 / 1
Регистрация: 03.11.2011
Сообщений: 129
11.11.2011, 17:45  [ТС]     Вопрос по оператору switch #7
C++
1
2
   if(a%2 == 0)
    n++; //как понять?
GhostVIRUS
6 / 6 / 0
Регистрация: 17.09.2011
Сообщений: 81
11.11.2011, 17:46     Вопрос по оператору switch #8
C++
1
n++; // тоже самое что и n = n + 1;
vpnwz151
10 / 11 / 1
Регистрация: 03.11.2011
Сообщений: 129
11.11.2011, 17:49  [ТС]     Вопрос по оператору switch #9
это я понял сможеш пример кусок скинуть а то что-то я не понимаю

C++
1
2
3
4
5
6
7
8
9
10
11
     int a, b, c;
 
        cout<<"digit: ";
        cin>>a;
        cout<<"digit 2: ";
        cin>>b;
        cout<<"digit 3: ";
        cin>>c;
 
        if(a % 2 == 0)
            n++; // просто не могу понять откуда она взялась
Как дальше оформить то?
Dar101
40 / 40 / 1
Регистрация: 12.05.2011
Сообщений: 109
11.11.2011, 17:56     Вопрос по оператору switch #10
C++
1
2
3
4
5
6
7
8
9
10
11
12
   int a, b, c;
   cout<<"digit: ";
   cin>>a;
   cout<<"digit 2: ";
   cin>>b;
   cout<<"digit 3: ";
   cin>>c;
   int n = 0; //число четных чисел
   if(a % 2 == 0)  n++;
   if(b % 2 == 0)  n++;
   if(c % 2 == 0)  n++;
   cout<<"count of even numbers:"<<n;
Чтобы много раз не писать одни и те же действия как тут:
C++
1
2
3
   if(a % 2 == 0)  n++;
   if(b % 2 == 0)  n++;
   if(c % 2 == 0)  n++;
можно использовать массив int.
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
11.11.2011, 17:58     Вопрос по оператору switch #11
Цитата Сообщение от vpnwz151 Посмотреть сообщение
И можно более детально описать роботу оператора Switch
C++
1
2
3
4
5
6
7
8
9
10
switch(aaaa){
case 1:     // если aaaa равно 1 
    .....     // делаем что нам надо.
    break; // прерываем выполнение switch потому что нет смысла проверять другие условия
case 2:     // если aaaa равно 2 
    .....     // делаем что нам надо.
    break; // прерываем выполнение switch потому что нет смысла проверять другие условия
default;   // выполняется в случае если не один из case не подходит.
    break;
}
vpnwz151
10 / 11 / 1
Регистрация: 03.11.2011
Сообщений: 129
11.11.2011, 18:01  [ТС]     Вопрос по оператору switch #12
[QUOTE=Dar101;2159850]
C++
1
2
3
4
5
 
   int n = 0; //число четных чисел
   if(a % 2 == 0)  n++;   <-  это
   if(b % 2 == 0)  n++;
   if(c % 2 == 0)  n++;

можешь объяснить как оно работает!

Спасибо за помощь!
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
11.11.2011, 18:06     Вопрос по оператору switch #13
Цитата Сообщение от vpnwz151 Посмотреть сообщение
можешь объяснить как оно работает!
C++
1
 if(a % 2 == 0)  n++;   <-  это
если остаток от деления a на 2 равен нулю прибавляем к n единицу.

p.s. если остаток от деления a на 2 равен нулю то число четное.
например
4%2 = 0
5%2 = 1
GhostVIRUS
6 / 6 / 0
Регистрация: 17.09.2011
Сообщений: 81
11.11.2011, 20:21     Вопрос по оператору switch #14
Что мешает переделать?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.11.2011, 20:38     Вопрос по оператору switch
Еще ссылки по теме:

Составление программы с с использованием оператору цикла - C++
Сколько членов последовательности 1/2,2/3,3/4,4/5... надо суммировать, чтобы сумма превысила данное значение S&gt; 0?Составление программы...

Обращение к перегруженному оператору () через указатель на объект - C++
Собственно, как? class MyClass { .. void operator() (int _i) { cout &lt;&lt; &quot;operator()&quot; &lt;&lt; _i &lt;&lt; endl; } ...

Скажите есть ли в с++ альтернатива оператору case в pascal - C++
Скажите есть ли в с++ альтернатива case как в паскале

Напишите по одному оператору для выполнения следующих операций с одномерным массивом: - C++
Напишите по одному оператору для выполнения следующих операций с одномерным массивом: а) присвойте нулевые начальные значения 10...


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

Или воспользуйтесь поиском по форуму:
vpnwz151
10 / 11 / 1
Регистрация: 03.11.2011
Сообщений: 129
11.11.2011, 20:38  [ТС]     Вопрос по оператору switch #15
Всем спасибо большое!
Yandex
Объявления
11.11.2011, 20:38     Вопрос по оператору switch
Ответ Создать тему
Опции темы

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