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

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

Войти
Регистрация
Восстановить пароль
 
pro_mary
1 / 1 / 0
Регистрация: 23.03.2009
Сообщений: 99
#1

Инициализация массива внутри case - C++

26.05.2011, 21:13. Просмотров 506. Ответов 3
Метки нет (Все метки)

Подскажите, пожалуйста, как правильно инициализировать массив внутри оператора case? Или так делать нельзя?
При компиляции вот этого кода ошибок нет, но при выводе результатов бесконечно печатается Vubor:. Что не так?:
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
#include "stdafx.h"
#include <iostream>
 
int _tmain(int argc, _TCHAR* argv[])
{
    int n;
    std::cout << "Enter n: ";
    std::cin >> n;
    double *x1 = new double[n];
    std::cout << "Vubor: ";
    int choise;
    std::cin >> choise;
    while (choise != 2)
    {
        switch (choise)
        {
        case 1:
            {
                std::cout << "the first...\n";
                for (int i = 0; i < n; i++)
                    x1[i] = 1.3*i;
            }
            break;
        
        default : std::cout << "Ne verno!\n";
        }
    }
        for (int i = 0; i < n; i++)
            std::cout << x1[i] << "\n";
        std::cout << "\n";
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.05.2011, 21:13     Инициализация массива внутри case
Посмотрите здесь:

C++ Инициализация двумерного массива
C++ Инициализация массива
Инициализация массива C++
Инициализация массива C++
Инициализация массива внутри структурированнного типа C++
Инициализация обьекта внутри другого класса C++
Инициализация массива строк внутри класса C++
Инициализация массива C++
C++ Инициализация переменной, которая определена внутри функции
C++ Инициализация динамического массива
Инициализация массива C++ C++
C++ Внутри switch ошибка Case bypasses initialization of a local variable

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rangerx
1922 / 1531 / 139
Регистрация: 31.05.2009
Сообщений: 2,894
26.05.2011, 21:21     Инициализация массива внутри case #2
C++
1
2
std::cin >> choise;
while (choise != 2)
Даёт бесконечный цикл(choise внутри цикла никогда не становится равным 2).
pro_mary
1 / 1 / 0
Регистрация: 23.03.2009
Сообщений: 99
27.05.2011, 00:46  [ТС]     Инициализация массива внутри case #3
Так а как правильно то??
И почему тут все нормально работает??
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
int _tmain(int argc, _TCHAR* argv[])
{
    showmenu();
    int choise;
    cin >> choise;
    while (choise != 5)
    {
        switch (choise)
        {
        case 1 : cout << "\a\n";
            cout << "Second string.\n";
            break;
        case 2 : report();
            break;
        case 3 : cout << "The boss was in all day.\n";
            break;
        case 4 : comfort();
            break;
        default : cout << "That's not a choise.\n";
        }
        showmenu();
        cin >> choise;
    }
    cout << "Bye!!\n";
Добавлено через 12 секунд
Так а как правильно то??
И почему тут все нормально работает??
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
int _tmain(int argc, _TCHAR* argv[])
{
    showmenu();
    int choise;
    cin >> choise;
    while (choise != 5)
    {
        switch (choise)
        {
        case 1 : cout << "\a\n";
            cout << "Second string.\n";
            break;
        case 2 : report();
            break;
        case 3 : cout << "The boss was in all day.\n";
            break;
        case 4 : comfort();
            break;
        default : cout << "That's not a choise.\n";
        }
        showmenu();
        cin >> choise;
    }
    cout << "Bye!!\n";
Добавлено через 58 секунд
Извините за повтор.. проблемы с интернетом..
Daemon025
380 / 329 / 67
Регистрация: 06.12.2010
Сообщений: 900
27.05.2011, 00:55     Инициализация массива внутри case #4
Цитата Сообщение от pro_mary Посмотреть сообщение
cin >> choise;
добавьте в своём варианте
Yandex
Объявления
27.05.2011, 00:55     Инициализация массива внутри case
Ответ Создать тему
Опции темы

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