![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 05.01.2010
Сообщений: 4
|
![]()
Всем доброго дня.
При компиляции программы, в подпрограмме появляется ошибка error C2043: illegal break. Подпрограмма должна найти среднее арифметическое положительных элементов с четными номерами Вот код подпрограммы: Код:
|
![]() |
![]() |
![]() |
#2 |
Linux C++ Qt ARM
Старожил
Регистрация: 30.11.2008
Сообщений: 3,030
|
![]()
а что break делает в теле if`а ??? он ставится только в циклах (и то, далеко не всегда он там нужен) и в switch`ах.
Дилетант широкого профиля.
"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс Последний раз редактировалось ROD; 05.01.2010 в 14:16. |
![]() |
![]() |
![]() |
#3 |
Регистрация: 05.01.2010
Сообщений: 4
|
![]()
Если включить if, где находится break, в цикл, то программа вылетает с ошибкой (приложение будет закрыто)...
Можно ли как-то по-другому остановить работу подпрограммы? Сразу после нее должна включиться другая подпрограмма. |
![]() |
![]() |
![]() |
#4 |
Linux C++ Qt ARM
Старожил
Регистрация: 30.11.2008
Сообщений: 3,030
|
![]()
если тебе надо остановить работу подпрограммы, то надо писать return; (если она ничего не возвращает (типа void)) или return 0; (или любое другое значение или переменная) в том месте, где подпрограмма должна закончить свою работу.
К тому же у вас во втором цикле for очевидная ошибка - если тело цикла не поммещено в фигурные скобки, то телом считается следующая за циклом строка Рекомендую это Код:
Код:
Дилетант широкого профиля.
"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс Последний раз редактировалось ROD; 05.01.2010 в 15:00. |
![]() |
![]() |
![]() |
#5 |
Регистрация: 05.01.2010
Сообщений: 4
|
![]()
ROD, спасибо вам большое за помощь.
По поводу return: загвоздка была в том, что в одном случае (если не попадала на второй if) подпрограмма должна была возвращать sa, а в другом - нет. Решение оказалось простым )) надо было изменить условие второго if на противоположное. Код:
![]() |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 19.12.2011
Сообщений: 11
|
![]()
Здравствуйте!
Дабы не плодить лишних тем, задам свой вопрос здесь, ведь тема та же. Вычисляю сумму ряда. код: Код:
break используется для аварийного выхода из цикла при превышении определенного количества итераций. |
![]() |
![]() |
![]() |
#7 | |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
![]() Цитата:
Код:
Код:
В первом случае компилятор посчитает телом цикла только одно действие: Код:
Конечно, выделять туловище цикла фигурными скобками - предпочтительнее, ибо лучше читается, проще понять, и меньше вероятность допустить ошибку. Лично я всегда заключаю туловище цикла в фигурные скобки (даже если оно в одно простое действие). Но сказать, что первый вариант содержит грамматическую ошибку языка нельзя Последний раз редактировалось _Bers; 04.01.2012 в 21:07. |
|
![]() |
![]() |
![]() |
#8 | |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
![]() Цитата:
1. См комментарий в коде. 2. Перечитываем сообщение написанное мною чуть выше. 3. Задаём себе вопрос: что означает символ ';' для компилятора? Зачем этот символ стоит после объявления цикла, и что подумает компилятор, когда увидит этот символ? Последний раз редактировалось _Bers; 04.01.2012 в 20:58. |
|
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ошибка I/O error 104 | ptz2010 | Общие вопросы Delphi | 8 | 31.03.2009 20:45 |
Ошибка I/O error 6 | Волк | Общие вопросы Delphi | 8 | 09.02.2009 14:12 |
ERROR:Illegal indexing mode | IgorKr | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 1 | 13.12.2008 23:54 |
Ошибка(C++): error C2041: illegal digit '9' for base '8' | TheWanderer | Общие вопросы C/C++ | 4 | 02.10.2008 21:11 |
ошибка I/O error 32 | kolduev | Помощь студентам | 7 | 29.02.2008 20:22 |