Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

Ошибка проявляется только в середине, а не в начале программы - C++

10.12.2012, 20:49. Просмотров 374. Ответов 2
Метки нет (Все метки)

здравствуйте, в программе у меня ошибка, но она почему то обозначается только в строках
case 'octybr': и в строчке case'sentybr':

собственно сама ошибка:
duplicate case value - в строчке case 'octybr':
previously used here - в строчке case'sentybr':

вот программа

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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <math.h>
#include <conio.h>
#include <time.h>
#include <stdio.h>
#include <algorithm>
 
using namespace std;
int main()
{
    int max=0;
 
    int yanvar=0,mart=0,may=0,iul=0,avgust=0,octybr=0,decabr=0,aprel=0,iun=0,sentybr=0,noyabr=0,fevral=0;
    int yanvar1[31];
    for(int i=0;i<31; ++i)
            {
                yanvar1[i]=-16+rand()%19;
                cout<<"\n "<<yanvar1[i];
                yanvar+=yanvar1[i];
 
         }
 cout<<"\n summa"<<yanvar;
    int fevral1[28];
    for (int i=0;i<28;++i)
    {
        fevral1[i]=-23+rand()%24;
        fevral+=fevral1[i];
    }
 
    int mart1[31];
    for(int i=0;i<31; ++i)
    {
        mart1[i]=-8+rand()%13;
        mart+=mart1[i];
    }
    int aprel1[30];
    for(int i=0;i<30; ++i)
    {
        aprel1[i]=1+rand()%28;
        aprel+=aprel1[i];
    }
 
    int may1[31];
    for(int i=0;i<31; ++i)
    {
        may1[i]=13+rand()%15;
        may+=may1[i];
    }
 
    int iun1[30];
    for(int i=0;i<30; ++i)
    {
        iun1[i]=10+rand()%14;
        iun+=iun1[i];
    }
 
    int iul1[31];
    for(int i=0;i<31; ++i)
    {
        iul1[i]=15+rand()%15;
        iul+=iul1[i];
    }
 
    int avgust1[31];
    for(int i=0;i<31; ++i)
    {
        avgust1[i]=14+rand()%18;
        avgust+=avgust1[i];
    }
 
    int sentybr1[30];
    for(int i=0;i<30; ++i)
    {
        sentybr1[i]=9+rand()%15;
        sentybr+=sentybr1[i];
    }
 
    int octybr1[31];
    for(int i=0;i<31; ++i)
    {
        octybr1[i]=0+rand()%18;
        octybr+=octybr1[i];
    }
 
    int noyabr1[30];
    for(int i=0;i<30; ++i)
    {
        noyabr1[i]=-4+rand()%14;
        noyabr+=noyabr1[i];
    }
 
    int decabr1[31];
    for(int i=0;i<31; ++i)
    {
        decabr1[i]=-5+rand()%10;
        decabr+=decabr1[i];
    }
 
    yanvar=yanvar/31; cout<<"\n sr.znach"<<yanvar;
    fevral=fevral/28;
    mart=mart/31;
    aprel=aprel/30;
    may=may/31;
    iun=iun/30;
    iul=iul/31;
    avgust=avgust/31;
    sentybr=sentybr/30;
    octybr=octybr/31;
    noyabr=noyabr/30;
    decabr=decabr/31;
int T[12]={yanvar,mart,may,iul,avgust,octybr,decabr,aprel,iun,sentybr,noyabr,fevral};
for (int i=0; i<12;++i)
{
    if (T[i]>max)
        max = T[i];
 
}
switch (max)
{
case 'yanvar':
    cout<<"yanvar";
    break;
case 'fevral':
    cout<<"fevral";
    break;
case 'mart':
    cout<<"mart";
    break;
case 'aprel':
    cout<<"aprel";
    break;
case 'may':
    cout<<"may";
    break;
case 'iun':
    cout<<"iun";
    break;
case 'iul':
    cout<<"iul";
    break;
case 'avgust':
    cout<<"avgust";
    break;
case 'sentybr':
    cout<<"sentybr";
    break;
case 'octybr':
    cout<<"octybr";
    break;
case 'noyabr':
    cout<<"noyabr";
    break;
case 'decabr':
    cout<<"decabr";
    break;
}
 cout<<"\n max = "<<max;
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2012, 20:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка проявляется только в середине, а не в начале программы (C++):

Преобразовать строку, чтобы в ее начале были записаны слова, содержащие только цифры - C++
Преобразовать строку таким образом, чтобы в ее начале были записаны слова, содержащие только цифры, потом слова, содержащие только буквы, а...

Можно ли как-то сократить объявления using в начале программы? - C++
Запариля уже объявлять каждый раз в таком роде... using std::cin; using std::cout; using std::endl; using std::string; using...

Текст начинается в середине, а не в начале - HTML, CSS
добрый вечер, подскажите в чем у меня ошибка код: &lt;html&gt; &lt;head&gt; &lt;title&gt;фотоконкурсы, фотовыставки и.т.д.&lt;/title&gt; &lt;/head&gt; ...

Задан текстовый файл F. Переписать компоненты файла F в файл H, вставить в начале и середине строк символ пробела. Порядок компонентов сохранить - Pascal
Задан текстовый файл F. Переписать компоненты файла F в файл H, вставить в начале и середине строк символ пробела. Порядок компонентов...

Как сделать, чтобы алерт вызывался, если набрать слово "тест" в начале, середине или конце предложения? - jQuery
Здравствуйте условие которое ниже, вызывает алерт, если в текстарее набрать слово &quot;тест&quot;. Подскажите, пожалуйста, как сделать, чтобы...

Прокрутка только контента по середине - HTML, CSS
Надо сделать так,что только прокручивался контент по середине.То есть,например слева и справа текст,а по середине фотки и при их прокрутке...

2
DU
1484 / 1130 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
10.12.2012, 21:03 #2
непонятно, как это компилится вообще.
C++
1
2
3
4
5
//max имеет тип int
switch (max)
{
 case 'yanvar': // а вот это что? в одинарных ковычках - один символ, в двойных - строка, которая в свитче запрещена
 cout<<"yanvar";
подозреваю, что копилятор преобразует
'octybr' и 'sentybr' в инт с одинаковым значением. иначе хз как оно компилится. и если это преобразование имеет место быть, тогда понятно откуда ошибка. в свитче все кейсы должны быть уникальными.
как бы там ни было, это неверный код и надо делать по другому. для начала кавычки уберите. т.е.
C++
1
2
3
4
switch (max)
{
 case yanvar: // без кавычек
 cout<<"yanvar";
0
fokse
0 / 0 / 0
Регистрация: 10.12.2012
Сообщений: 65
12.12.2012, 23:25  [ТС] #3
я убрала, после этого всё равно ошибка(
значения у октября и сентября разные - 10 и 15
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.12.2012, 23:25
Привет! Вот еще темы с ответами:

Нужно найти строки, в которых стоят две В в начале или в конце(вывести YES); и строки, где в середине идет подряд три В(вывести NO) - Turbo Pascal
Дано некоторое количество строк с символами А и В. Нужно найти строки, в которых стоят две В в начале или в конце(вывести YES); и строки,...

Word 2013, cделать рамку только на 1 лист в середине документа - MS Word
Как в Word 2013 cделать рамку только на 1 лист в середине документа?

таблица на html , по середине в ячейке должна быть картинка на заднем фоне по середине - HTML, CSS
напишите код пожалуйста: таблица на html , по середине в ячейке должна быть картинка на заднем фоне по середине, причём вынести в отдельный...

Подскажите пожалуйста можна ли убрать то что в середине, оставить только контур окружности - Delphi
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,...


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

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

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