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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.08.2011, 10:33   #1
ддимочка
Пользователь
 
Регистрация: 30.08.2011
Сообщений: 26
Вопрос заполнение массива на Си

Суть проблемы такова:
пытаюсь заполнить массив самым примитивным образом:

#include <stdio.h>
void main( )
{
int i, j, mas[2][2];
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
mas[i][j]=j;
}

for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%d", mas[i][j]);
}
getchar();
}

Результатом работы программы ДОЛЖНО быть 012012012. НА ПРАКТИКЕ 010010012.
Когда штудировал с помощью отладчика, обнаружил, что когда заполняется вторая строка массива то одновременно изменяется последний элемент первой строки и так далее. Прошу опытных людей объяснить мне сермяжному СУТЬ проблемы и способы ее решения.
P.S. пользуюсь компилятором Watcom C-C++
ддимочка вне форума Ответить с цитированием
Старый 31.08.2011, 12:13   #2
_Alerter_
Пользователь
 
Регистрация: 25.05.2011
Сообщений: 89
По умолчанию

выход за границы массива, результатом никак не может быть 012012012, т.к. в массиве всего четыре элемента
Код:
#include <stdio.h>
 void main( )
 {
 int i, j, mas[2][2];
 for(i=0;i<2;i++)
 {
 for(j=0;j<2;j++)
 mas[i][j]=j;
 }

 for(i=0;i<2;i++)
 {
 for(j=0;j<2;j++)
 printf("%d", mas[i][j]);
 }
 getchar();
 }
_Alerter_ вне форума Ответить с цитированием
Старый 31.08.2011, 13:28   #3
An1ka
C++,DirectX/OpenGL
Форумчанин
 
Регистрация: 09.01.2011
Сообщений: 422
По умолчанию

Цитата:
Сообщение от ддимочка Посмотреть сообщение
Результатом работы программы ДОЛЖНО быть 012012012.
Тогда нужно сделать массив 3 на 3.
Код:
int mas[3][3];
An1ka вне форума Ответить с цитированием
Старый 02.09.2011, 11:59   #4
ддимочка
Пользователь
 
Регистрация: 30.08.2011
Сообщений: 26
По умолчанию

Ребята, спасибо за разъяснение. Просто у меня с нумерацией элементов массива непонятка вышла. До ваших пояснений я свято верил, что описывая массив mas[2][2] получаем масиив три на три. Меня ввело в заблуждение то, что первый элемент массива нулевой. получается, при описании массива мы задаем именно размерность, а не номера последнего элемента?
ддимочка вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
заполнение массива feras Общие вопросы Delphi 0 25.05.2011 03:18
Заполнение массива Сеня2007 Помощь студентам 6 23.02.2011 20:39
Заполнение массива Alex_Mason Общие вопросы Delphi 2 07.12.2010 22:58
Заполнение массива siemdi Общие вопросы C/C++ 12 27.05.2010 22:21
Заполнение массива. Небесный Общие вопросы C/C++ 3 01.09.2009 01:39