| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > Программа работает, но затем вылетает |
| Автор: Savior 31.5.2009, 18:31 |
| Помогите, пожалуйста, разобраться. Надо сделать такое задание: дан двумерный массив. Подсчитать кол-во столбцов, имеющих хотя бы 1 нулевой элемент. Я вообще-то пишу в основном на Pascal, а тут надо на C++. В VisualStudio 6.0 создал консольное приложение и написал след. код: // Eighth.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "iostream.h" #include "math.h" int main(int argc, char* argv[]) { const n=5,m=5; int mas[5][5],s=0,i,j; for (i=1;i<=5;i++) { for (j=1;j<=5;j++) { cout<<"vvedite element "; cin>>mas[i][j]; } } for (i=1;i<=5;i++) { for (j=1;j<=5;j++) { if (mas[j][i]==0) { s++; break; } } } cout<<"s="<<s; return 0; } Программа компилируется, всё вроде нормально, но после того, как я ввожу все элементы массива, она вылетает, показывая всем известное сообщение, что приложение будет закрыто (это которое с двумя кнопками: отправить-не отправлять). В чём ошибка - ума не приложу. Если это где-то у кого-то было, дайте, пожалуйста, ссылку. Заранее спасибо |
| Автор: gosn1ck 31.5.2009, 18:37 |
| ты обращаешься к элементу массива, которого не существует используй кнопку код |
| Автор: Rififi 31.5.2009, 18:38 |
| в циклах условие не <=, а < Добавлено через 1 минуту и 18 секунд и индексация с 0. В чём ошибка - ума не приложу ответ найдешь в любой книжке по C/C++, раздел "Массивы" |
| Автор: mes 31.5.2009, 18:40 |
и индексы начинаются с 0, а не с 1 как в паскале |
| Автор: Savior 31.5.2009, 18:42 |
| Сделал индексы с нулевого и всё получилось. Трудно всё-таки сразу переходить от одного языка к другому. Спасибо огромное!!! |
| Автор: andrew_121 31.5.2009, 18:48 |
А в паскале с 1-ы ? А килобайт там случаем не 1000 равен? Тему пометь решенной. |
| Автор: azesmcar 31.5.2009, 18:52 |
Такая страшная новость? огорчу, не только в паскале, во всех подобных языках - ADA, Delphi (хотя это практически тот же паскаль), PL/SQL, ColdFusion. Это из тех что я знаю, но я уверен что это чуть ли не половина всех языков. |
| Автор: mes 31.5.2009, 19:28 |
По умолчанию, да. Но можно определить чтоб он начинался с 0 или с любого другого индекса. можно задать свой диапозон - array[10..99] или даже так ['a'..'z'] |
| Автор: andrew_121 31.5.2009, 19:49 |
Во замутили |
| Автор: mes 31.5.2009, 21:28 |
проще или сложней трудно сказать, смотря с какой стороны смотреть.. почитать о том, что еще бывает можно например здесь : http://solidbase.karelia.ru/edu/zonna/5_pascal_4.htm |
| Автор: andrew_121 31.5.2009, 21:45 |
| mes, Боюсь |
| Автор: kemiisto 31.5.2009, 21:47 |
azesmcar, а я тебя порадую. В Оберонах с 0. P.S. andrew_121, знаете, как опасно для программиста ограничивать себя только одним языком. А если это ещё и С++... |
| Автор: azesmcar 31.5.2009, 21:59 |
Сколько радости |