Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Массив - куда делись последнии члены ? 
:(
    Опции темы
En_t_end
Дата 5.3.2005, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2074
Регистрация: 4.12.2004

Репутация: 1
Всего: 20



Код

int matrix[3][3];
int i=0;
int d=0;
matrix[0][0] = 1;
matrix[0][1] = 2;
matrix[0][2] = 3;
matrix[0][3] = 4;
matrix[1][0] = 5;
matrix[1][1] = 6;
matrix[1][2] = 7;
matrix[1][3] = 8;
matrix[2][0] = 9;
matrix[2][1] = 1;
matrix[2][2] = 0;
matrix[2][3] = 1;
matrix[3][0] = 1;
matrix[3][1] = 1;
matrix[3][2] = 2;
matrix[3][3] = 1;
cout << matrix[0][0];
cout << matrix[0][1];
cout << matrix[0][2];
cout << matrix[0][3] << endl;
cout << matrix[1][0];
cout << matrix[1][1];
cout << matrix[1][2];
cout << matrix[1][3] << endl;
cout << matrix[2][0];
cout << matrix[2][1];
cout << matrix[2][2];
cout << matrix[2][3] << endl;
cout << matrix[3][0];
cout << matrix[3][1];
cout << matrix[3][2];
cout << matrix[3][3] << endl;


Тут я сделал очень топорно, просто надо было быстро smile
Вот в чем глюк. Если обьявить массив именно так, как он сейчас обьявлен, то результат вывода будет не таким, как ожидалось, если же его обьявить, так : int matrix[3][4], то последнии члены горизонтального ряда нормально выведуться. Почему именно так ?, ведь члены вертикального ряда выводяться без глюков и так.
PM MAIL ICQ Skype GTalk Jabber   Вверх
Domestic Cat
Дата 5.3.2005, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 3
Всего: 172



Код

   matrix[0][0] = 1;
   matrix[0][1] = 2;
   matrix[0][2] = 3;
   matrix[0][3] = 4;

у тебя массив 3х3, а ты присваиваешь значения как 4х4


--------------------

PM   Вверх
En_t_end
Дата 5.3.2005, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2074
Регистрация: 4.12.2004

Репутация: 1
Всего: 20



 Domestic Cat 
Ой...а тогда зачем 0 член нужен, разве компилятор не знает, что в 3x3 входит 0 ?
PM MAIL ICQ Skype GTalk Jabber   Вверх
Domestic Cat
Дата 5.3.2005, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 3
Всего: 172



Цитата
Ой...а тогда зачем 0 член нужен, разве компилятор не знает, что в 3x3 входит 0 ?


Не понял?


--------------------

PM   Вверх
En_t_end
Дата 5.3.2005, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2074
Регистрация: 4.12.2004

Репутация: 1
Всего: 20



Ну смотри, вот этот ряд включает 0 : 0 1 2 3 ???, тут же последнее число 3, значит мы его и заносим в обьявление массива. ЗЫ первый раз этот ноль юзаю, вот и непонятно, раньше использовал первый член 1.
PM MAIL ICQ Skype GTalk Jabber   Вверх
Fixin
Дата 5.3.2005, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ёжик
***


Профиль
Группа: Комодератор
Сообщений: 1357
Регистрация: 6.1.2004

Репутация: 2
Всего: 18



Считай: 3 элемента - 0, 1, 2. 2 - пследний индекс в трех элементах.
Добавлено @ 12:45
А, опоздал. Сам понял - молодец!
PM MAIL ICQ   Вверх
Adil'
Дата 5.3.2005, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 311
Регистрация: 26.8.2004
Где: Питер

Репутация: 6
Всего: 15



Цитата(En_t_end @ 5.3.2005, 12:32)
Ну смотри, вот этот ряд включает 0 : 0 1 2 3 ???, тут же последнее число 3, значит мы его и заносим в обьявление массива
Заносится в объявление массива не последнее число, а размерность массива, т.е. последний индекс+1: 3+1=4.



--------------------
Удачи
PM MAIL WWW   Вверх
En_t_end
Дата 5.3.2005, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2074
Регистрация: 4.12.2004

Репутация: 1
Всего: 20



Спасибо!
Цитата
т.е. последний индекс+1

В смысле, если у меня квадратная матрица 4*4, получается, чтобы её обьявить надо [5][5] ? Чего-то я совсем запутался smile
PM MAIL ICQ Skype GTalk Jabber   Вверх
DENNN
Дата 5.3.2005, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

Репутация: 1
Всего: 43



Цитата(En_t_end @ 5.3.2005, 14:00)
В смысле, если у меня квадратная матрица 4*4, получается, чтобы её обьявить надо [5][5] ? Чего-то я совсем запутался

Ты сам то подумай: массив char[5] имеет элементы 0,1,2,3,4
По пальцам количество пересчитай - будет пять.
PM ICQ   Вверх
Goryachev
Дата 5.3.2005, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 67
Регистрация: 23.2.2005
Где: Израиль

Репутация: нет
Всего: нет



Цитата(En_t_end @ 5.3.2005, 14:00)
В смысле, если у меня квадратная матрица 4*4, получается, чтобы её обьявить надо [5][5] ? Чего-то я совсем запутался

Если ты объявляешь матрицу 4х4:
Код

int matrix[4][4];


То индексы матрицы будут: 0,1,2,3, т.е. для особо трудно понятливых, индекс каждой строки и каждой колонки начинается с нуля (и это как в одномерном массиве), и заканчивается с 4-1=3.
Итого: 4 элемента в каждой строке, 4 элемента в каждой колонке. => 4х4

П.С.: Ты путаешь с ВБ 6. Там если объявляешь: (4,4) то индекс 0 входит в матрицу, и индекс 4 тоже, и получается 5х5.

PM MAIL   Вверх
Doc_d0s
Дата 5.3.2005, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 206
Регистрация: 15.12.2004
Где: в кресле

Репутация: 2
Всего: 3



В С нумерация идет с нуля!!! smile
Значит вводя массив три на три индексы у тебя будут от 0 до 2! smile
--------------------
Админ- это вождь Apache'й :)
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0841 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.