Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.09.2009, 15:53   #1
Syltan
Заблокирован
 
Регистрация: 27.08.2009
Сообщений: 569
По умолчанию Странное решение

Тут встретился в книжонке с таким выводом 2-мерного массива, вроде простой, но вывод странный. Не дадите комент по странной строке:
Код:
nums[t][i] = (t*4)+i+1;
Весь код:
Код:
#include <iostream>
using namespace std;
int main()
{
int t,i, nums[3][4];
for(t = 0; t < 3; t++){
	for(i = 0; i < 4; i++){
	nums[t][i] = (t*4)+i+1;
cout<<endl<<nums[t][i] <<' ';
	}
}
cin.get();
}
Syltan вне форума Ответить с цитированием
Старый 01.09.2009, 15:58   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А чего тут удивительного? Это похоже на :
Код:
int k=0;
for (i=0;i<4;i++)
 for(j=0;j<3;j++) nums[i][j]=k++;
Бывают и такие заполнения порядковыми номерами ячеек. Я иногда так делаю чтоб координатность показать
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.09.2009, 16:16   #3
Syltan
Заблокирован
 
Регистрация: 27.08.2009
Сообщений: 569
По умолчанию

А при таком раскладе, считает только до 11, а не до 12.

Код:
#include <iostream>
using namespace std;
int main()
{
int t,i, nums[3][4];
int k = 0;
for(t = 0; t < 3; t++){
	for(i = 0; i < 4; i++)
	{
		nums[t][i] = k++;
cout<<endl<<nums[t][i];
	}
}
cin.get();
}
Syltan вне форума Ответить с цитированием
Старый 01.09.2009, 16:26   #4
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Потому что тут с нуля нумерация. Измените на nums[t][i] = ++k и будет до 12
pu4koff вне форума Ответить с цитированием
Старый 01.09.2009, 16:29   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я сказал "похоже". Именно поэтому используется формула подобной (t*4)+i+1; потому как она надежнее.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.09.2009, 17:11   #6
Syltan
Заблокирован
 
Регистрация: 27.08.2009
Сообщений: 569
По умолчанию

Если посчитать вручную
Код:
nums[t][i] = (t*4)+i+1;
То этого будет выглядеть так,что ли? :

0*4+1+1=2
1*4+2+1=7
2*4+3+1=11
.......................
Что-то не то, или я не так считаю наверное.
А умножается на 4, потому-что 4 столбца
Syltan вне форума Ответить с цитированием
Старый 01.09.2009, 17:17   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
0*4+1+1=2
Первый элемент - 0*4+0+1=1 - сказали же с нуля начинается.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.09.2009, 17:28   #8
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

0*4+0+1=1
0*4+1+1=2
0*4+2+1=3
0*4+3+1=4
1*4+0+1 = 5
...
pu4koff вне форума Ответить с цитированием
Старый 01.09.2009, 18:03   #9
Syltan
Заблокирован
 
Регистрация: 27.08.2009
Сообщений: 569
По умолчанию

t*4 - это строка t умножается на 4, потому что в столбце 4 элемента?
Syltan вне форума Ответить с цитированием
Старый 01.09.2009, 21:01   #10
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Цитата:
Сообщение от Syltan Посмотреть сообщение
t*4 - это строка t умножается на 4, потому что в столбце 4 элемента?
ага. типа того
pu4koff вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Странное поведение TTreeView mutabor Компоненты Delphi 1 01.05.2009 05:17
Че-то странное .... ~Brilliant~ Безопасность, Шифрование 9 27.04.2009 13:57
Странное поведение базы yulia БД в Delphi 7 22.04.2009 07:15
Странное поведение DLL Yurk@ Компоненты Delphi 4 01.02.2009 01:23
Странное закрытие joker Win Api 18 29.03.2008 07:45