Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
DenkaBelan
0 / 0 / 0
Регистрация: 17.10.2011
Сообщений: 23
#1

Как обратиться к первому и последнему элементу в строчке в двумерном массиве - C++

08.12.2011, 14:29. Просмотров 791. Ответов 14
Метки нет (Все метки)

День Добрый. Не могу понять как обратиться к первому и последнему элементу в строчке в двумерном массиве содержащем n-строк m-столбцов через x+i**m+j. Помогите разобраться.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2011, 14:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как обратиться к первому и последнему элементу в строчке в двумерном массиве (C++):

у нас есть число.МЫ не знаем его длины.Как обратиться к первому элементу?? - C++
В общем тема такая " у нас есть число.МЫ не знаем его длины.Как обратиться к первому элементу?? "

В одномерном массиве определить количество элементов, равных первому положительному элементу - C++
В заданном одномерном массиве R(N) определить количество элементов, равных первому положительному элементу. Если таких элементов нет, то...

Подсчитать сумму элементов строки в массиве и присвоить значение первому элементу - C++
void raschet (int x, int &nul , int &kol ) { nul=0, kol=0; int i,j,z ; for (int i=0; i<I; i++) { x=0; z+= x; } ...

В заданном одномерном массиве определить количество элементов, равных первому положительному элементу - C++
В заданном одномерном массиве R(N) определить количество элементов, равных первому положительному элементу. Если таких элементов нет, то...

Как обратиться к элементу списка? - C++
Подскажите как автоматически (в цикле например) обратиться к члену списка. Список выглядит так: //Определение: class Node: { ...

Как обратиться к элементу списка list ? - C++
list<int> a;

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
hoot
100 / 21 / 3
Регистрация: 10.11.2010
Сообщений: 193
08.12.2011, 14:31 #2
n=5
m=5
mas[0][0]-первая элемент массива
mas[4][4]-послед элемент массива
DenkaBelan
0 / 0 / 0
Регистрация: 17.10.2011
Сообщений: 23
08.12.2011, 14:32  [ТС] #3
Цитата Сообщение от hoot Посмотреть сообщение
n=5
m=5
mas[0][0]-первая элемент массива
mas[4][4]-послед элемент массива
мне нужно обратиться не через указатели а через x+i**m+j или это невозможно?
BRcr
4008 / 2297 / 155
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 10
08.12.2011, 14:38 #4
Цитата Сообщение от DenkaBelan Посмотреть сообщение
x+i**m+j
Так-то все возможно, только вы сперва расшифруйте, что эт такое и с чем его едят.
hoot
100 / 21 / 3
Регистрация: 10.11.2010
Сообщений: 193
08.12.2011, 14:42 #5
согласен, а то моя-твоя не пониМАТ)
DenkaBelan
0 / 0 / 0
Регистрация: 17.10.2011
Сообщений: 23
08.12.2011, 14:42  [ТС] #6
Цитата Сообщение от BRcr Посмотреть сообщение
Так-то все возможно, только вы сперва расшифруйте, что эт такое и с чем его едят.
Вот выдержка из книги
Как обратиться к первому и последнему элементу в строчке в двумерном массиве
hoot
100 / 21 / 3
Регистрация: 10.11.2010
Сообщений: 193
08.12.2011, 14:52 #7
в этой чудо формуле берутся с неба два параметра(b,n) что они означают не понимаю. Только ощущение что n не количество строк как было раньше по тексту.( Уточнить можно у кого-то?
DenkaBelan
0 / 0 / 0
Регистрация: 17.10.2011
Сообщений: 23
08.12.2011, 14:55  [ТС] #8
Цитата Сообщение от hoot Посмотреть сообщение
в этой чудо формуле берутся с неба два параметра(b,n) что они означают не понимаю. Только ощущение что n не количество строк как было раньше по тексту.( Уточнить можно у кого-то?
b матрица сама, точнее в этой формуле как то читал что это типо элемент b[0][0], а вот что такое b вообще не знаю и как обратиться к элементам что писал выше не знаю (
MBazarov
5 / 3 / 1
Регистрация: 08.12.2011
Сообщений: 15
08.12.2011, 14:59 #9
Первый элемент будет доступен по имени, точнее он будет нулевой, а последний будет смещен на размер массива
пример :
C
1
2
3
4
5
int a[5][5];
 
printf("%d",*a); // Нулевой элемент
 
printf("%d",*(a+5*5)); // Последний элемент
DenkaBelan
0 / 0 / 0
Регистрация: 17.10.2011
Сообщений: 23
08.12.2011, 15:27  [ТС] #10
Дык как всё таки при помощи i и j обратиться к первому и последнему элементу в строке матрицы? Через цикл потому что делаться будет вот и спрашиваю.
hoot
100 / 21 / 3
Регистрация: 10.11.2010
Сообщений: 193
08.12.2011, 15:32 #11
ну к примеру:
C++
1
2
3
4
cin>>a;//нужная строка матрицы
cin>>b;//нужный столбец матрицы
 
cout<<mas[a][b];//заданный элемент матрицы
как-то так.
MBazarov
5 / 3 / 1
Регистрация: 08.12.2011
Сообщений: 15
08.12.2011, 15:36 #12
Цитата Сообщение от DenkaBelan Посмотреть сообщение
Дык как всё таки при помощи i и j обратиться к первому и последнему элементу в строке матрицы? Через цикл потому что делаться будет вот и спрашиваю.
вместо 5*5 можешь подставлять i J если это размерность массива
hoot
100 / 21 / 3
Регистрация: 10.11.2010
Сообщений: 193
08.12.2011, 15:53 #13
C++
1
2
3
4
cin>>a;
cin>>b;
 
mas[a][b];
c помощью а и б задаешь номер элемента.
BRcr
4008 / 2297 / 155
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 10
08.12.2011, 16:16 #14
Все, не могу больше смотреть на это непотребство.
Как-то так:
C++
1
2
3
4
5
6
int i, j, n, m, *arr;
printf("\nn = "); scanf("%d", &n);
printf("\nm = "); scanf("%d", &m);
arr = new int[n][m];
for(i=0; i<n; i++)for(j=0; j<m; j++){arr[i][j] = rand()%100; printf( "\narr[%d][%d] = %d", i, j, *(arr + i*m +j) );}
delete[] arr;
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
08.12.2011, 19:49 #15
Это еще не такое извращение, когда двумерный массив представляют единым монолитным динамическим одномерным массивом и к его элементам обращаются *(a + i*n + j), где n - количество столбцов матрицы (я уж по привычке работаю с матрицами A=A(m,n)). Этот способ обращения к элементам не совсем привычен (как, скажем, a[i][j]), поэтому чтобы это свести к обычному способу обращения к элементам, добавляют блок указателей к этому массиву, при этом все опять же хранится единым монолитным блоком.
Конечно, есть более употребительный способ, когда выделяется память для массива указателей, а потом выделяется память для одномерных массивов (по-отдельности), но вот есть и такие способы. Особенно второй способ с дополнительным массивом указателей требует большей осмысленности, чем остальные, но и не лишен смысла.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.12.2011, 19:49
Привет! Вот еще темы с ответами:

Как обратиться к следующему элементу списка? - C++
#include &lt;iostream&gt; using namespace std; template &lt;typename T&gt; class List { struct Node{ T...

Как обратиться к элементу структуры в классе - C++
есть класс #include &lt;iostream&gt; class bayer { public: bayer(); bayer(const char *name, double pay); void...

Как с указателем обратиться к 4му элементу массива - C++
Имеем массив из 50 элементов. Как с помощью указателей обратиться к 4му элементу массива?

Как обратиться к элементу массива с использованием указателя - C++
Всем привет, есть некоторая задачка, которую мне очень важно решить... Дословно пишу условие в С\С++ обьявлен массив mas значений...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
08.12.2011, 19:49
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru