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

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

Войти
Регистрация
Восстановить пароль
 
 
Евклид
0 / 0 / 0
Регистрация: 21.10.2011
Сообщений: 10
#1

Ребят, можете помочь исправить ошибку, долго с ней мучался. - C++

02.11.2011, 22:38. Просмотров 954. Ответов 22
Метки нет (Все метки)

Эта задача не работает полностью.Это программа с использованием меню. Зацикливается,когда переходит к case3. Помогите пожалуйста.
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
 #include<iostream.h>
 #include<conio.h>
 #include<math.h>
 #include<string.h>
 int main()
 {
 m1:
 {
 clrscr();
 int f1,f2=0;
 char s[15],passw[]="123456";
 cout<<"vvedite parol"<<endl;
 cin>>s;
 if (strstr(s,passw))f2=1;
 if(f2==1)
 cout<<"Parol verniy"<<endl;
 if(f2!=1)
 {
 cout<<"Parol neverniy"<<endl;
 getch();
 goto m1;
 }
 }
 int perekl;
 int j;
 link:
 cout<<"              MENU             "<<endl;
 cout<<"1)Arifmetisheskie operazii"<<endl<<"2)Odnomerniy massiv"<<endl<<"3)Dvumerniy massiv"<<endl<<"4)Exit"<<endl;
 cout<<"Vibirite komandu"<<endl;
 cin>>perekl;
 switch(perekl)
main()
{
case1:
int a,b;
float y,c;
cout<<"vvedite chislo a,b,c"<<endl;
cin>> a>>b>>c;
if (c>0) y=8*a-b- 31/c;
if(c<=0) y= 3*a+b/7-c;
cout<< "y= "<<y;
getch ();
goto link;
case2:
#define HB 5 
int a[HB];  
int min;   
int i;     
printf("\nПоиск минимального элемента массива\n");
    printf("Введите в одной строке ");
    printf("%i целых чисел, и нажмите <Enter>\n", HB);
    printf("-> ");
    for (i = 0; i < HB; i++)
 scanf("%i",&a[i]);
max = 0; 
 for (i = 1; i < HB; i++)
        if (a[i] > a[max])  max  =  i;
 
    printf("Максимальный элемент массива: a[%i]=%i ", max+1, a[max]);
    printf("\nДля завершения работы программы нажмите <Enter>");
    getch();
goto link;
case3:
int i,j,mas[10][10],n,m,sum[10];
clrscr();
cout<<"Vvedite kol-vo strok massiva:"<<endl;
cin>>n;
cout<<"Vvedite kol-vo stolbchov massiva:"<<endl;
cin>>m;
cout<<"Vvedite elementi massiva:"<<endl;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
cin>>mas[i][j];
}
cout<<"Vvedenniy massiv:"<<endl;
for(i=0;i<n;i++)
{
cout<<endl;
for(j=0;j<n;j++)
cout<<mas[i][j]<<" ";
}
cout<<endl;
cout<<"Summa elementov po stolbcam:"<<endl;
for(j=0;j<n;j++)
sum[j]=0;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
sum[j]=sum[j]+mas[i][j];
for(j=0;j<n;j++)
cout<<sum[j]<<" "<<endl;
getch();
goto link;
case4:
goto exit;
 default:
 goto link;
 }
 exit:
 cout<<"the end";
 getch();
 }
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.11.2011, 22:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ребят, можете помочь исправить ошибку, долго с ней мучался. (C++):

Ребят, подскажите как исправить ошибку... - C++
не могу понять , много что перепробывал компилятор C++ builder codegear вот собственно сам код ...

Помочь доделать программу с реккурентными соотношениями. (Исправить ошибку) - C++
Здравствуйте, дорогие форумчане. Опять нуждаюсь в вас. Мне помочь доделать программу. Задание прикрепил на скрине, так как его...

Программисты, можете ли вы мне объяснить почему выдает эту ошибку час сижу не могу исправить - C++
Задание: Разработать программу для генерации числового массива, его сортировки по возрастанию и по убыванию, а также поиска элементов по...

Делаем игру. Можете помочь? - C++
Знаю, что ваще не по теме, но нормальных программистов, кроме как на специальных форумах, как этот, мы найти нигде не можем. Короче, нужны...

Можете помочь дописать программу, неправильно работает. - C++
Вариант 8 Даны целые массивы А, B и значения R и F. Каждый массив пpеобpазовать по пpавилу: компоненты с четными номеpами,...

Помочь исправить - C++
Здравствуйте, в с++ я новичок, программирую 2 день, дошел до одномерных массивов, помогите разобраться в чем ошибка. Задача: В одномерном...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
hoot
100 / 21 / 3
Регистрация: 10.11.2010
Сообщений: 193
03.11.2011, 17:14 #16
Bers,
по сути говорим одно и тоже но разными словами.
Что б не разводить демагогию, предлагаю завершить дискуссию.
А вот что касается меня как "Прикладного программиста верхнего уровня", не красиво на личности переходить. Все были такими прикладными прогеррами. И всегда хорошо когда человек имеет свое мнение, только нужно слышать опонента, а не слушать.
Плох тот кто закрыл свое сознание от нового!
100 грам, код, мир?)))
0
Bers
Заблокирован
03.11.2011, 17:33 #17
Цитата Сообщение от hoot Посмотреть сообщение
А вот что касается меня как "Прикладного программиста верхнего уровня", не красиво на личности переходить.
Это не переход на личности, и это даже не показатель "профессионализма" программиста. Это просто предметная область в которой он работает.

Я тоже прикладной программист, и всякие там goto не использую. Зачем он мне нужен в ОО-архитектуре, когда и без него все шустро работает.

Использовал его несколько раз, но каждый раз это были ситуации, когда:
1. Хотелось из лени сэкономить на нескольких строчках кода.
2. Это было глубоко запрятано в кишках библиотеки, и кроме меня туда нехай вапще кому соваться.
3. Первый же рефакторинг позволил сделать кишки более красиво, а goto просто остался не у дел.

Я вообще считаю, что всякого рода оптимизации (не обязательно с goto) лучше оставить на совести компилятора, ну или на совести специального софта, который уже рабочий код сможет "оптимизировать" перед непосредственно компиляцией, с возможностью обратного преобразования.

А сам человек в ручную этим заниматься не должен, тем паче на высоком уровне.

Добавлено через 19 секунд
Цитата Сообщение от hoot Посмотреть сообщение
100 грам, код, мир?)))
ага
0
Razzeeyy
30 / 7 / 2
Регистрация: 01.03.2011
Сообщений: 95
03.11.2011, 17:42 #18
народ раз уж тема зашла про goto, у меня тут появился вопрос:
мне однажды лень было писать пару строк кода, а по ситуации нужно было чтобы один (из двух) конструкторов класса, при определенных обстоятельствах работал как другой, вызывать конструктор из конструктора напрямую запрещенно... задумал сделать goto на начало другого конструктора, но как выяснилось goto подвержен влиянию областей видимости.
так вот вопрос, как при помощи goto можно сделать переход на метку в другой области видимости?
по аналогии с неймспейсами? goto class_name::class_construc::link; ?
0
Bers
Заблокирован
03.11.2011, 17:55 #19
Razzeeyy, Это вам у Сыроежки спросить надобно) Он у нас великий знаток с++

/зы Я б на вашем месте ещё раз пересмотрел б архитектуру, а не изобретал бы очередные пляски с бубнами.
0
LosAngeles
Заблокирован
03.11.2011, 17:59 #20
Razzeeyy,
The
only use of an identifier label is as the target of a goto. The scope of a label is the function in which it
appears. Labels shall not be redeclared within a function. A label can be used in a goto statement before
its definition. Labels have their own name space and do not interfere with other identifiers.
The goto statement unconditionally transfers control to the statement labeled by the identifier. The identifier
shall be a label (6.1) located in the current function
.
0
Razzeeyy
30 / 7 / 2
Регистрация: 01.03.2011
Сообщений: 95
03.11.2011, 18:04 #21
Цитата Сообщение от Bers Посмотреть сообщение
/зы Я б на вашем месте ещё раз пересмотрел б архитектуру, а не изобретал бы очередные пляски с бубнами.
благо там код мал был, просто скопипастил. да впрочем если интересно взгляните сами https://github.com/Razzeeyy/Rz-config-manager )

LosAngeles, печалька...
0
LosAngeles
Заблокирован
03.11.2011, 18:11 #22
Цитата Сообщение от Razzeeyy Посмотреть сообщение
при определенных обстоятельствах работал как другой, вызывать конструктор из конструктора напрямую запрещенно... задумал сделать goto на начало другого конструктора,
Просто даже в другую функцию прыгнуть нельзся, как ты себе это представляешь, нужно ведь накачать стек положить какие-то параметры, проинициализировать локальные переменные, а вслучае с методом класса положить в регистр this, или тоже в стек его запихать, короче сам видишь это невозможно реализовать. Просто вызвать конструктор в некотором смысле можно, может быть тебе placement new нужен или метод create сделать, вобщем озвучь первоначальную задачу, скорее всего она легко реализуется без таких страшных вещей которые ты написал и goto
0
Razzeeyy
30 / 7 / 2
Регистрация: 01.03.2011
Сообщений: 95
03.11.2011, 18:13 #23
да, там можно было бы сделать метод open() "вместо конструктора" и вызывать его в конструкторе, но там не настолько сложная задача была )
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.11.2011, 18:13
Привет! Вот еще темы с ответами:

Ребят Незнаю что делать при запуске на компилирование выдает ошибку.Кто понимает что не так скажите а если не затруднит исправьте ошибку - C++
Разговаривал с двумя преподами говорят что проект не правильно создавал,хотя все правильно из группы спрашивал у парней говорят что не...

прошу помочь найти ошибку - C++
задача должна заключатЬся в следующем: вводится предположим число 5, программа обрабатывает и выдает на строке 5 звездочек. #include...

Нахождение суммы большего и меньшего из 3 чисел (помочь найти ошибку) - C++
#include &lt;iostream.h&gt; #include &lt;math.h&gt; int MAX(int,int); int MIN(int,int); int a,b,c,d,e,f void main() {cout&gt;&gt;&quot;Vvedite tri...

Программа на контестере проходит только 1 тест из 9. Можете объяснить, в чем моя ошибка и как ее исправить! - C++
Объясните, в чем моя ошибка в решении задачи. Условие: 103. Подсчет войск ограничение времени на тест: 0.5 сек. ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
03.11.2011, 18:13
Ответ Создать тему
Опции темы

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