Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > C++

Ответ
 
Опции темы
Старый 20.10.2010, 23:48   #1
Reizel
Задрот
 
Аватар для Reizel
 
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений
(для 863 пользователей)
Двумерные массивы, не пойму

#include <stdio.h>
#include <conio.h>

void main()
{       clrscr();
	const int size=3;
	int Array[size][size]=
	{
	{1,2,3},
	{3,1,2},
	{2,3,1}
	};


	for (int y=0;y<size;y++)
	{
		for (int x=0;x<size;x++) printf("%d ",*Array[x,y]);
		printf("\n");


	}
	getch();
}
Выводит:
111
333
222

ПОЧЕМУ????
ЗЫЖ за void main не бейте, мне в универе за иную запись ноль ставят
(Offline)
 
Ответить с цитированием
Старый 20.10.2010, 23:53   #2
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Двумерные массивы, не пойму

что вот это:
int Array[size][size]=
{
{1,2,3},
{3,1,2},
{2,3,1}
};
и вот это:
*Array[x,y]
за синткаксис? Билдер со свителками?
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 21.10.2010, 00:17   #3
BlackDragon
Проектировщик
 
Аватар для BlackDragon
 
Регистрация: 25.03.2007
Сообщений: 536
Написано 252 полезных сообщений
(для 715 пользователей)
Ответ: Двумерные массивы, не пойму

Я тож С++ начал изучать.
Гуру, просветите, какой смысл несет запись:
x,y
что значит запятая?
(Offline)
 
Ответить с цитированием
Старый 21.10.2010, 00:35   #4
Knightmare
Дэвелопер
 
Регистрация: 14.02.2007
Сообщений: 1,471
Написано 824 полезных сообщений
(для 2,920 пользователей)
Ответ: Двумерные массивы, не пойму

1) Переводись на другой факультет пока есть возможность. На этом ты вылетишь в лучшем случае на 3 курсе.
2)
Ты не будешь программистом. Никогда.
3) void main() не соотвествует ISO C
4) При объявлении массива не нужны size, размеры сами подсчитаются.
5) Самое смишное[многомерные][массивы][в][С] индексируются с помощью указания каждой размерности в отдельный паре квадраных скобок. Кроме того, я понятия не имею почему компилятор проглотил запятую (хотя есть мнение что BC хавает запятые как разделитель инстукций, и в качеству индекса брался только y), но то как ты разыменовал указатель на массив чтобы получить int это нечто. Аплодирую стоя за чудесный метод решения ошибок выдаваемых компиляором.
6) clrscr() - это хреновина есть только в борладовских недокомпиляторах. И вообще за необоснованную очистку консоли надо отрубать руки по самые ноги.

Последний раз редактировалось Knightmare, 21.10.2010 в 00:52. Причина: Вандализм моралофагов
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо Knightmare за это полезное сообщение:
falcon (21.10.2010), Reks888 (21.10.2010)
Старый 21.10.2010, 13:26   #5
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Двумерные массивы, не пойму

Сообщение от Knightmare Посмотреть сообщение
4) При объявлении массива не нужны size, размеры сами подсчитаются.
Заглянул в онлайн учебник:
Каждая пара фигурных скобок специфицирует значения, относящиеся к одной определённой размерности. Пустые фигурные скобки не допускаются (и это означает, что в C++ реализован жёсткий алгоритм инициализации массивов):
int MyArray[3][3][3] = {
{{
0,1}},
{{
100},{200,210},{300}},
{{
1000},{2000,2100},{3000,3100,3200}}
}; 
...
По аналогии с одномерным массивом, при явной инициализации массива входящего в состав многомерного массива его самая левая размерность может не указываться. Она определяется на основе инициализатора.
int MyArray[ ][3][3] = {
{{
0,1}},
{{
100},{200,210},{300}},
{{
1000},{2000,2100}}
}; 
http://www.cyberguru.ru/programming/...ay-page70.html
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 21.10.2010, 14:58   #6
Knightmare
Дэвелопер
 
Регистрация: 14.02.2007
Сообщений: 1,471
Написано 824 полезных сообщений
(для 2,920 пользователей)
Ответ: Двумерные массивы, не пойму

Может быть. Хотя проверять на нормальном компиляторе лень, а борландовские (на сайте там про Борланд говорится, да) поделки компиляторами считают только в наших замечательных ВУЗах. Хотя в С (не С++) пожалуй вполне возможно, что все размерности надо явно указывать, то язык невероятно суровый. Кстати, там еще косяк есть в коде (применительно к С, т.к. судя по коду задача была именно на нем писать), в С переменные можно объявлять только в начале блока.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
impersonalis (21.10.2010)
Старый 21.10.2010, 16:47   #7
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Двумерные массивы, не пойму

Сообщение от Knightmare Посмотреть сообщение
в С переменные можно объявлять только в начале блока.
Прям паскаль какой-то
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
impersonalis (21.10.2010)
Старый 21.10.2010, 17:19   #8
Knightmare
Дэвелопер
 
Регистрация: 14.02.2007
Сообщений: 1,471
Написано 824 полезных сообщений
(для 2,920 пользователей)
Ответ: Двумерные массивы, не пойму

Ну то особенности реализации компилятора. Ну и в паскале как бэ прям все в начале функции объявлялось, а тут в начале блока, т.е. примерно так:
int main()
{
    
int ijk;
    if(...)
    {
        
int mn;
    }
    
int a// а вот так низя, ололо
    
return 0;

(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
pax (21.10.2010)
Старый 22.10.2010, 10:53   #9
Reizel
Задрот
 
Аватар для Reizel
 
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений
(для 863 пользователей)
Ответ: Двумерные массивы, не пойму

Не не не, объявлять можно в любом месте.

Сообщение от Knightmare Посмотреть сообщение
1) Переводись на другой факультет пока есть возможность. На этом ты вылетишь в лучшем случае на 3 курсе.
Хрена с два! Если историчка не завалит, то не вылечу
2)
Ты не будешь программистом. Никогда.
С чего ты так уверен??
3) void main() не соотвествует ISO C
Ты знаешь, когда наша училка на лекции говорила в первый раз про void main, что это типа главная функция и бла-бла-бла, дядь Паша возмутился, сказал что нужно бы int main, по стандарту. В результате она тупо покричала сказала что мы все никто и мозгов у нас нет
4) При объявлении массива не нужны size, размеры сами подсчитаются.
А ты это ей объясни
5) Самое смишное[многомерные][массивы][в][С] индексируются с помощью указания каждой размерности в отдельный паре квадраных скобок. Кроме того, я понятия не имею почему компилятор проглотил запятую (хотя есть мнение что BC хавает запятые как разделитель инстукций, и в качеству индекса брался только y), но то как ты разыменовал указатель на массив чтобы получить int это нечто. Аплодирую стоя за чудесный метод решения ошибок выдаваемых компиляором.
Какое то время я писал на С#, там индексы были через запятую. А в С++ я их не юзал, вот и не знал! а то что там компилятор сказал что - то на английском, так я не понял, ибо не знаю его. Это я смудил, да
6) clrscr() - это хреновина есть только в борладовских недокомпиляторах. И вообще за необоснованную очистку консоли надо отрубать руки по самые ноги.
Чтоб училке оформление понравилось, благо там консоли не юзают. Она даж за оформление баллы накидывает
(Offline)
 
Ответить с цитированием
Старый 22.10.2010, 11:03   #10
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Двумерные массивы, не пойму

ну как всегда - проганью учит кто попало
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Эти 5 пользователя(ей) сказали Спасибо impersonalis за это полезное сообщение:
HolyDel (05.11.2010), pax (22.10.2010), Randomize (22.10.2010), Reizel (24.10.2010), SBJoker (22.10.2010)
Старый 22.10.2010, 11:29   #11
Knightmare
Дэвелопер
 
Регистрация: 14.02.2007
Сообщений: 1,471
Написано 824 полезных сообщений
(для 2,920 пользователей)
Ответ: Двумерные массивы, не пойму

Не не не, объявлять можно в любом месте.
В С++ да, а вот в С нет.
Хрена с два! Если историчка не завалит, то не вылечу
Ололо, год или два назад у нас полностью отчислили группу (ну не полностью, остатки сами быстро перевелись) с такими же скилами как у тебя. Основы матана, работа с командной строкой и массивы в С не самые страшные вещи.
С чего ты так уверен?
С того.
Ты знаешь, когда наша училка на лекции говорила в первый раз про void main, что это типа главная функция и бла-бла-бла, дядь Паша возмутился, сказал что нужно бы int main, по стандарту. В результате она тупо покричала сказала что мы все никто и мозгов у нас нет
Типа "Я неудачник и слился при первой сложности". Запоминай сюда, в стандарте ISO 9899:1999 (C99) в пункте 5.1.2.2.1 именуемом не иначе как "Program startup" сказано, что точка входа программы имеет 2 варианта:
1) int main(void)
2) int main(int argc, char *argv[])
Все. Никаких void, ибо ОС ожидает от программы числового кода завершения (0 - удачно, другое значение - фейл).
А ты это ей объясни
Щас все брошу поеду хрен знает куда выполнять роль кэпа и объяснять преподу что она тупая дура. Мне своих хватает, которым приходится объяснять что рандомный массив не может быть ни возрастающей, ни убывающей последовательностью.
а то что там компилятор сказал что - то на английском, так я не понял, ибо не знаю его.

Чтоб училке оформление понравилось, благо там консоли не юзают. Она даж за оформление баллы накидывает
Данное, кхм... "оформление кода" не соответствует общепринятым нормам (хотя я и встречал не раз данный жуткий стиль, человека так пишущего код не возьмут на работу ни в одну нормальную контору). И я не поэл, что значит "благо консоли там не юзают"?
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо Knightmare за это полезное сообщение:
Harter (02.11.2010), impersonalis (22.10.2010), Randomize (22.10.2010)
Старый 22.10.2010, 11:31   #12
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Двумерные массивы, не пойму

Я вот когда студентов паскалю учил - я их в первую очередь код форматировать учил и правильно отступы ставить слева, чтобы программы читабельны были. Чтобы понимали хотя бы что сами напишут ))
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Эти 5 пользователя(ей) сказали Спасибо pax за это полезное сообщение:
Dzirt (31.10.2010), Hurrit (30.10.2010), impersonalis (22.10.2010), Mr_F_ (23.10.2010), Reizel (24.10.2010)
Старый 22.10.2010, 12:08   #13
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Двумерные массивы, не пойму

Я кстати часто раньше писал (а теперь иногда проскакивает) void main, данный оборот почерпнут был в период самообразования в школе из некоего пособия для младшекуров по С++.
Интересно - откуда ноги растут у этого явления. Или же эта часть (тип возвращаемого значения) неактуальна для С++ ?
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 22.10.2010, 12:13   #14
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Двумерные массивы, не пойму

Сообщение от impersonalis Посмотреть сообщение
Я кстати часто раньше писал (а теперь иногда проскакивает) void main, данный оборот почерпнут был в период самообразования в школе из некоего пособия для младшекуров по С++.
Интересно - откуда ноги растут у этого явления. Или же эта часть (тип возвращаемого значения) неактуальна для С++ ?
а зачем делать его void?

В синтетических примерах, чтобы вообще не задумываться о возвращаемом значении и сосредоточиться на том аспекте для которого этот пример пишется.
Может ли main возвращать void
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 22.10.2010, 12:36   #15
.Squid
Дэвелопер
 
Аватар для .Squid
 
Регистрация: 06.04.2009
Адрес: Запорожье
Сообщений: 1,500
Написано 1,011 полезных сообщений
(для 4,642 пользователей)
Ответ: Двумерные массивы, не пойму

Сообщение от pax Посмотреть сообщение
Я вот когда студентов паскалю учил - я их в первую очередь код форматировать учил и правильно отступы ставить слева, чтобы программы читабельны были. Чтобы понимали хотя бы что сами напишут ))
А я бы еще учил командному проганью. Разбивать группу на команды по три человека и давать модульное задание, чтобы каждый член команды свою часть выполнял.
Те, кто шарит, частично вставят ума тем, кто не особо разбирается. А слабые откроют глаза сильным, чтобы те были готовы к тому, что в реальной жизни они тоже не всегда будут окружены себе подобными.
Правда есть один серьезный затык. Есть большая вероятность, что те, кто шарит, сами все сделают
__________________

(Offline)
 
Ответить с цитированием
Эти 11 пользователя(ей) сказали Спасибо .Squid за это полезное сообщение:
Arles (27.10.2010), Dream (22.10.2010), Harter (02.11.2010), HolyDel (05.11.2010), Hurrit (30.10.2010), impersonalis (22.10.2010), maxturbo (11.11.2010), pax (22.10.2010), Randomize (22.10.2010), Reizel (24.10.2010), SBJoker (22.10.2010)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 06:41.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com