Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: доступ к двумерному динамическому массиву  (Прочитано 6033 раз)
0 Пользователей и 1 Гость смотрят эту тему.
CAHTA
Гость
« : 12-09-2005 08:51 » 

я тут навоял реализацию массива:
int **arr;
int U,str,st;

                  printf("Введите размер массива i,j \n");
                  scanf("%i %i",&str,&stl);
                  printf("i=%i, j=%i",str,stl);

                  arr=(int **)calloc(str,sizeof(int*));
                  for( U = 0 ; U < str ; U++ ) arr = (int*)calloc(stl,sizeof(int));

вот только я не пойму как мне записать\прочитать данные из этого массива. 
вот такое не работает.
int F
F=str;
arr[F][F]=stl;
Записан
Hooter
Опытный

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 12-09-2005 09:42 » 

А что именно не работает, собственно?

Вот, например, во второй строке ты опечатку допустил - написал st вместо stl.

А этот код должен вывалиться с исключением:
Цитата
int F
F=str;
arr[F][F]=stl;

Ты здесь пытаешься обратиться к элементу arr[F][F].
Переменная F у тебя равно str. Но ведь номера индексов строк изменяются от 0 до (str - 1) !! Значение переменной F не попадает в этот диапазон.

Кроме этого ты пытаешься подставить F  во второй индекс. Здесь то же самое: если у тебя значение F  не попадает в диапазон 0 .. (stl - 1), то возникнет исключительная ситуация.

Или что-то еще не работает?
Записан
CAHTA
Гость
« Ответ #2 : 12-09-2005 11:53 » 

ыы , мнда.. сглупил Улыбаюсь спасибо за помошь Улыбаюсь
Записан
CAHTA
Гость
« Ответ #3 : 12-09-2005 13:21 » 

а как реализовать ввод n чисел? n задается пользователем.

мне нужно ввести матрицу с клавиатуры . вводить значение для каждой ячейки неудобно! ( если напирмер матрица 100*100)
как реализовать ввод всей строки массива.? т.е вводить не по одному значению, а сразу все строку массива
« Последнее редактирование: 12-09-2005 13:26 от CAHTA » Записан
Hooter
Опытный

ru
Offline Offline
Пол: Мужской

« Ответ #4 : 12-09-2005 16:50 » 

вводить значение для каждой ячейки неудобно! ( если напирмер матрица 100*100)

я так понимаю, ты какие-то учебные задания выполняешь?
если так, то в данном случае все что, не запрещено - то разрещено Улыбаюсь
на самом деле, людей составляющих такие задания надо б пару раз  заставить самих ввести матрицу 100 на 100 с клавиатуры. сразу охота отпала так условия ставить Улыбаюсь

так в чем у тебя проблема? в задании прямо сказано, что нужно с клавиатуры вводить или только "n чисел задается пользователем"?
если второе, то выдумать можно все, что угодно...
Записан
CAHTA
Гость
« Ответ #5 : 12-09-2005 17:04 » 

уже разобрался Улыбаюсь
for ( F = 0;F < str ; F++)
                     for ( FF = 0; FF < stl; FF++)
                        scanf("%i",&arr[F][FF]);

ввожу просто матрицу .
например
3 4 5
3 4 6
2 4 6
Улыбаюсь
Записан
nikedeforest
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #6 : 12-09-2005 17:20 » 

Цитата
я так понимаю, ты какие-то учебные задания выполняешь?
если так, то в данном случае все что, не запрещено - то разрещено 
На войне, как на войне Улыбаюсь
Записан

ещё один вопрос ...
Hooter
Опытный

ru
Offline Offline
Пол: Мужской

« Ответ #7 : 12-09-2005 17:53 » 

ввожу просто матрицу .
например
3 4 5
3 4 6
2 4 6
Улыбаюсь

а можно эту же матрицу записать в текстовый файл и читать из него fscanf'ом (или чем-нибудь похожим).
и не нужно будет каждый раз с клавиатуры матрицу вводить Улыбаюсь
можно править только файл, а можно при запуске программы указывать имя файла - тогда можно будет использовать заготовки
« Последнее редактирование: 20-12-2007 20:20 от Алексей1153++ » Записан
CAHTA
Гость
« Ответ #8 : 12-09-2005 18:10 » 

так я эт и делаю. просто мне нада чтоб и вручную и из файла фурычило!

Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines