4 / 4 / 3
Регистрация: 05.09.2011
Сообщений: 113
1

Ошибка в case

12.11.2011, 15:49. Показов 982. Ответов 14
Метки нет (Все метки)

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
#include <system.hpp>
int vvod();
int vivod(int n1, int s1);
int obrab(int n1);
int *p;
int i;
int main()
{
 clrscr();
 int c;
 for(;;){
 rus("   Menu    ");
 rus("1) Vvod massiva");
 rus("2) Vivod u obrabotka");
 rus("3) Удаление массива ");
 cin>>c;
 switch (c)
 {
 case 1: int n1=vvod(); break;
 case 2: vivod(n1,obrab(n1)); break;
 case 3:  delete (p);
 default:rus("Net takoy komandi ");break;
 };
 }
 getch();
 return(0);
}
int vvod()
{
int n1;
rus("Kol-vo alementov"); cin>>n1;
p=new int [n1];
rus("Alementi massiva: ");
for(i=0;i<n1;i++)
cin>>p[i];
return(n1);
}
int obrab(int n1)
{int s=0;
 for(i=0;p[i]&&(i<=n1);i++);
 while(i<n1) s+=*(p+i++);
 return(s);
}
int vivod(int n1, int s)
{rus("Vvivod massiva");
for(i=0;i<n1;i++)
cout<<setw(3)<<*(p+i);
cout<<endl<<"s = "<<s<<endl;
return(0);
}
Осваиваю функции, программа смысла не имеет) просто возникла проблема откуда и не ждал,
вот код ошибки [C++ Error] Unit1.cpp(29): E2126 Case bypasses initialization of a local variable
ни как не могу понять в чем дело.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.11.2011, 15:49
Ответы с готовыми решениями:

Ошибка CASE в CASE возникла при переносе в столбец с текстом, дату
Подскажите пожалуйста, при формировании второго условия возникла ошибка, как исправить? - как...

Оператор case (ошибка): "Control cannot fall through from one case Label ('default:') to another"
Выдает ошибку: &quot;Control cannot fall through from one case label ('default:') to another&quot; class...

Ошибка: "Control cannot fall through from one case label ('case '9' (0x39):') to another"
Всем доброго времени суток. Захотел написать интерпритатор для языка HQ9+: string str...

Ошибка из-за case
Вот моя программа #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;memory.h&gt; #include...

14
Студент
148 / 148 / 64
Регистрация: 18.01.2011
Сообщений: 469
12.11.2011, 15:52 2
C++
1
 case 1: int n1=vvod(); break;
объявите переменную n1 в начале main
1
4 / 4 / 3
Регистрация: 05.09.2011
Сообщений: 113
12.11.2011, 15:58  [ТС] 3
Программа запустилась, но только введенный массив не передается в функцию обработки
0
Студент
148 / 148 / 64
Регистрация: 18.01.2011
Сообщений: 469
12.11.2011, 16:03 4
ну конечно, ведь вы передаете функции vvod() значение количества элементов, а не сам массив.
Я с указателями не сильно дружу но можете попробывать так
C++
1
2
3
4
5
6
7
8
9
10
int *vvod()
{
int n1;
rus("Kol-vo alementov"); cin>>n1;
p=new int [n1];
rus("Alementi massiva: ");
for(i=0;i<n1;i++)
cin>>p[i];
return p;
}
1
4 / 4 / 3
Регистрация: 05.09.2011
Сообщений: 113
12.11.2011, 16:08  [ТС] 5
К сожалению не помогло, я как бы тоже думал что массив надо тоже передавать, но с параметрами пока тоже не сильно дружу, а с указателями тем более)
0
Студент
148 / 148 / 64
Регистрация: 18.01.2011
Сообщений: 469
12.11.2011, 16:09 6
щас нормальную дам прогу
1
4 / 4 / 3
Регистрация: 05.09.2011
Сообщений: 113
12.11.2011, 16:14  [ТС] 7
спасибо, буду ждать
0
Студент
148 / 148 / 64
Регистрация: 18.01.2011
Сообщений: 469
12.11.2011, 16:20 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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include <iostream>
#include <conio.h>
#include <iomanip>
using namespace std;
int *vvod(int *mass, int n1);
void vivod(int *mass, int n1, int s1);
int obrab(int *mass, int n1);
int main()
{
    setlocale(0,"");
    int n1;
    int *p;
    int c;
    for(;;){
        system("cls");
        cout << "Меню: " << endl;
        cout << "1. Ввод массива" << endl;
        cout << "2. Обработчик массива " << endl;
        cout << "3. Вывод массива " << endl;
        cout << "4. Выход " << endl;
        cin>>c;
        switch (c)
        {
        case 1: 
            cout << "Введите кол-во элементов: "; cin >> n1;
            p = new int [n1];
            vvod(p, n1); break;
        case 2: 
            obrab(p,n1); break;
        case 3: 
            vivod(p,n1,obrab(p,n1)); 
            _getch();
            break;
        case 4:
            delete p;
            return 0;
        }
    }
    _getch();
    return 0;
}
int *vvod(int *mass, int n1)
{
    cout << "Элементы массива: \n";
    for(int i=0; i < n1; i++)
        cin>>mass[i];
    return mass;
}
int obrab(int *mass, int n1)
{
    int s=0;
    for(int i = 0; i < n1; i++)
        s += mass[i];
    return s;
}
void vivod(int *mass, int n1, int s)
{
    cout << "Вывод массива: ";
    for(int i=0;i<n1;i++)
        cout << setw(3) << mass[i];
    cout << endl << "s = "<<s<<endl;
 
}
1
4 / 4 / 3
Регистрация: 05.09.2011
Сообщений: 113
12.11.2011, 16:28  [ТС] 9
вопрос немного не в тему, но можете подсказать как переставить язык консоли???

Добавлено через 3 минуты
int *vvod(int *mass, int n1);
что означает * около vvod???
0
Студент
148 / 148 / 64
Регистрация: 18.01.2011
Сообщений: 469
12.11.2011, 16:31 10
в функцию передается одномерный массив и кол-во элементов.
можете так если проще
C++
1
int *vvod(int mass[], int n1);
0
4 / 4 / 3
Регистрация: 05.09.2011
Сообщений: 113
12.11.2011, 16:36  [ТС] 11
да не указатели я понимаю, а вот почему стоит * перед vvod, я никак не могу понять на счет int mass* я понял
0
Студент
148 / 148 / 64
Регистрация: 18.01.2011
Сообщений: 469
12.11.2011, 16:43 12
функция возращает массив
1
4 / 4 / 3
Регистрация: 05.09.2011
Сообщений: 113
12.11.2011, 17:01  [ТС] 13
Огромное вам спасибо, теперь надо немного её переделать под мои условия.

Добавлено через 2 минуты
так можете подсказать как поменять язык консоли?
0
Студент
148 / 148 / 64
Регистрация: 18.01.2011
Сообщений: 469
12.11.2011, 18:21 14
незнаю...
0
4 / 4 / 3
Регистрация: 05.09.2011
Сообщений: 113
12.11.2011, 18:26  [ТС] 15
Да я уж нашел, если кому поможет вот:
Tools->Editor Options...->Вкладка "Display"-> Чекбокс "Editor font"->Выбираем шрифт
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.11.2011, 18:26
Помогаю со студенческими работами здесь

Ошибка в CASE и IF
Сразу к делу: На второй форме стоит colorgrid, его значение selected заносится в файл txt. В...

Ошибка Case
Readln(f,l2); case l2 of 23: RadioButton1.Enabled:=True and RadioButton2.Enabled:=True and...

Ошибка в CASE
Приветствую. Что то никак не догоню в чем здесь ошибка: &lt;select name=&quot;sizer&quot; id=&quot;Size&quot;&gt; ...

Ошибка с case
#include &lt;iostream&gt; #include &lt;locale.h&gt; using namespace std; int main() { ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru