![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() ![]() |
![]() |
sheka |
![]() ![]()
Сообщение
#1
|
![]() Я. ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: ![]() ![]() ![]() |
Дана примерная таблица-матрица 1 2 (1,2,3,4-это четверти,для ясности)
3 4 1.Сгенерировать матрицу,вывести на экран сумму элементов 3+2 четвертей,методом выборки столбцов 2.Поиск Элементов В каждом столбце заданного элемента,деление пополам. ругается в scanf("%d",c); - при выполнении до этого места все нормально, а потом вылетает. почему? подскажите пожалуйста. |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата при выполнении до этого места все нормально, а потом вылетает. почему? Потому что надоscanf("%d",&c);, нужен адрес переменной. P.S. У тебя вообще программа делает не то, что тебе кажется. В switch-е после каждого case-а должен быть break, чтоб прекратить выполнение этой ветки. У тебя break отсутствует, то есть при вводе 1 или второй четверти: Цитата switch© { |
sheka |
![]()
Сообщение
#3
|
![]() Я. ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: ![]() ![]() ![]() |
Большое спасибо, разобрался. Моя первая программа на Си - готова!
А говорили с языка на язык переходить "без проблем, там все одинаковое!" ![]() там кавычки еще убрать надо. а почему оно идет дальше??? там же стоит "когда с=3 или 4". в паскале это обрабатывается, а здесь - не понятно! да, спасибо еще и за ссылку на компилятор, которая была в недавней теме. Сообщение отредактировано: sheka - 9.07.2009 23:37 |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Цитата а почему оно идет дальше??? там же стоит "когда с=3 или 4". в паскале это обрабатывается Потому что С и С++ - это не Паскаль.Цитата(С++ @ Бархатный путь) Схема выполнения оператора switch Рассмотрим, наконец, схему выполнения оператора switch: * вычисляется выражение в круглых скобках после оператора switch (предварительная стадия); * это значение последовательно сравнивается со значениями константных выражений за метками case (стадия определения начальной точки выполнения оператора); * если значения совпадают, управление передаётся соответствующему помеченному оператору (стадия выполнения); * если ни одно значение не совпадает и в теле оператора case есть оператор, помеченный меткой default, управление передаётся этому оператору (но даже в этом случае сочетание объявления с инициализацией недопустимо!) (стадия выполнения); * если ни одно значение не совпадает, и в теле оператора case нет оператора, помеченного меткой default, управление передаётся оператору, следующему за оператором switch (стадия выполнения). Метки case и default в теле оператора switch используются лишь при начальной проверке, на стадии определения начальной точки выполнения тела оператора. На стадии выполнения все операторы от точки выполнения и до конца тела оператора выполняются независимо от меток, если только какой-нибудь из операторов не передаст управление за пределы оператора выбора. Таким образом, программист сам должен заботиться о выходе из оператора выбора, если это необходимо. Чаще всего для этой цели используется оператор break. |
sheka |
![]()
Сообщение
#5
|
![]() Я. ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: ![]() ![]() ![]() |
да... оказывается я сильно не умею читать!
|
![]() ![]() |
![]() |
Текстовая версия | 20.06.2025 17:51 |