| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Массив - куда делись последнии члены ? |
| Автор: En_t_end 5.3.2005, 12:15 | ||
Тут я сделал очень топорно, просто надо было быстро Вот в чем глюк. Если обьявить массив именно так, как он сейчас обьявлен, то результат вывода будет не таким, как ожидалось, если же его обьявить, так : int matrix[3][4], то последнии члены горизонтального ряда нормально выведуться. Почему именно так ?, ведь члены вертикального ряда выводяться без глюков и так. |
| Автор: Domestic Cat 5.3.2005, 12:20 | ||
у тебя массив 3х3, а ты присваиваешь значения как 4х4 |
| Автор: En_t_end 5.3.2005, 12:22 |
| Domestic Cat Ой...а тогда зачем 0 член нужен, разве компилятор не знает, что в 3x3 входит 0 ? |
| Автор: Domestic Cat 5.3.2005, 12:26 | ||
Не понял? |
| Автор: En_t_end 5.3.2005, 12:32 |
| Ну смотри, вот этот ряд включает 0 : 0 1 2 3 ???, тут же последнее число 3, значит мы его и заносим в обьявление массива. ЗЫ первый раз этот ноль юзаю, вот и непонятно, раньше использовал первый член 1. |
| Автор: Fixin 5.3.2005, 12:44 |
| Считай: 3 элемента - 0, 1, 2. 2 - пследний индекс в трех элементах. Добавлено @ 12:45 А, опоздал. Сам понял - молодец! |
| Автор: Adil' 5.3.2005, 13:55 | ||
|
| Автор: En_t_end 5.3.2005, 14:00 | ||
Спасибо!
В смысле, если у меня квадратная матрица 4*4, получается, чтобы её обьявить надо [5][5] ? Чего-то я совсем запутался |
| Автор: DENNN 5.3.2005, 14:38 | ||
Ты сам то подумай: массив char[5] имеет элементы 0,1,2,3,4 По пальцам количество пересчитай - будет пять. |
| Автор: Goryachev 5.3.2005, 14:43 | ||||
Если ты объявляешь матрицу 4х4:
То индексы матрицы будут: 0,1,2,3, т.е. для особо трудно понятливых, индекс каждой строки и каждой колонки начинается с нуля (и это как в одномерном массиве), и заканчивается с 4-1=3. Итого: 4 элемента в каждой строке, 4 элемента в каждой колонке. => 4х4 П.С.: Ты путаешь с ВБ 6. Там если объявляешь: (4,4) то индекс 0 входит в матрицу, и индекс 4 тоже, и получается 5х5. |
| Автор: Doc_d0s 5.3.2005, 18:14 |
| В С нумерация идет с нуля!!! Значит вводя массив три на три индексы у тебя будут от 0 до 2! |