C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Массивы, Создание, сортировка, определение
Юрий
  Отправлено: 25.10.2006, 15:06


Ученик-кочегар

Группа: Участник
Сообщений: 12



Пожалуйста, помогите создать в Builder C++ ent двумерный массив вида:
123
456
789

sad.gif Учиться, учиться и учиться..

Отредактировано Юрий — 25.10.2006, 16:52
olegenty
Отправлено: 25.10.2006, 15:56


Ветеран

Группа: Модератор
Сообщений: 2412



пожалуйста:

vector < vector < int>> Array2D;
Юрий
Отправлено: 25.10.2006, 16:34


Ученик-кочегар

Группа: Участник
Сообщений: 12



Пожалуйста покажите пример с использованием:
vector < vector < int>> Array2D; yu.gif
Doga
Отправлено: 25.10.2006, 16:47


Мастер участка

Группа: Участник
Сообщений: 575



см. $(BCB)\Examples\StdLib\*.*
beginner
Отправлено: 25.10.2006, 16:49


Дежурный стрелочник

Группа: Участник
Сообщений: 44



Можно еще
CODE
int ar[3][3] = {1,2,3,
              4,5,6,
              7,8,9};
Doga
Отправлено: 25.10.2006, 17:08


Мастер участка

Группа: Участник
Сообщений: 575



Если нужен динамический массив, то можно ещё так:
CODE

int (*IntArray)[3][3];
IntArray = new int[3][3];
//...
delete [] IntArray;
Юрий
Отправлено: 25.10.2006, 17:11


Ученик-кочегар

Группа: Участник
Сообщений: 12



Отображает целое число, а то что нужно не хочет ... Что необходимо сделать для того чтобы именно получился вид:
123
456
789
CODE

#include <iostream.h>
#include <conio.h>
#include <vcl.h>
#pragma hdrstop
#pragma argsused
int main(int argc, char* argv[])
{
       int ar[3][3] = {1,2,3,
             4,5,6,
             7,8,9};
             cout<<ar[3][3];
             getch();
       return 0;
}
Doga
Отправлено: 25.10.2006, 17:14


Мастер участка

Группа: Участник
Сообщений: 575



Вы уже обьясните, в конце концов, что вам нужно:

какой вид, что отображает....
Юрий
Отправлено: 25.10.2006, 17:19


Ученик-кочегар

Группа: Участник
Сообщений: 12



Отображает 9452096 либо первый элемент в массиве 1, а мне нужна матрица:
1 2 3
4 5 6
7 8 9

Отредактировано Юрий — 25.10.2006, 18:26
Doga
Отправлено: 25.10.2006, 17:54


Мастер участка

Группа: Участник
Сообщений: 575



Что то вроде этого:

CODE

int main(void)
{
 int ar[3][3] =
 {
   {1,2,3},
   {4,5,6},
   {7,8,9}
 };

 cout << ar[0][0]  << ar[0][1] << ar[0][2];
 cout << ar[1][0]  << ar[1][1] << ar[1][2];
 cout << ar[2][0]  << ar[2][1] << ar[2][2];

 getch();

 return 0;
}

Юрий
Отправлено: 25.10.2006, 18:10


Ученик-кочегар

Группа: Участник
Сообщений: 12



Это то что надо, только у меня вновь вопрос...
Я могу создать свою матрицу используя функцию cout и cin один раз..
Для того чтобы в дальнейшем вводимые мною значения элементов массива я мог отсортировать....
Ведь вопрос в том хорошо если элементов в массиве 9, а если их 100 и их нужно отсортировать...??
1......10
11....20
............
91....100

Отредактировано Юрий — 25.10.2006, 19:20
Doga
Отправлено: 25.10.2006, 18:19


Мастер участка

Группа: Участник
Сообщений: 575



Да, безусловно! Можете даже 2 или 3 раза, или вообще сколько захотите smile.gif
Юрий
Отправлено: 25.10.2006, 18:24


Ученик-кочегар

Группа: Участник
Сообщений: 12



Вот потому и спрашиваю, как мне добиться этого результата с наименьшим использованием функции cout...?? yu.gif
gvg
Отправлено: 25.10.2006, 19:36


Машинист паровоза

Группа: Участник
Сообщений: 222



cout только отображает то, что хотите видеть.
QUOTE
Я могу создать свою матрицу используя функцию cout и cin один раз
использованием указанных функций ничего не создадите.
beginner
Отправлено: 25.10.2006, 20:16


Дежурный стрелочник

Группа: Участник
Сообщений: 44



QUOTE (Юрий @ 25.10.2006, 18:19)
Отображает 9452096 либо первый элемент в массиве 1, а мне нужна матрица:
1 2 3
4 5 6
7 8 9

CODE
int ar[3][3] =
{
  {1,2,3},
  {4,5,6},
  {7,8,9}
};
for(int i=0; i<3; i++)
{
 for(int j=0; j<3; j++)
   cout << " " << ar[i][j];
 cout << endl;
}

Если массив имеет размерность 3х3, тогда макс. индекс
ar[2][2], так как индексация начинается с нуля.
Doga
Отправлено: 26.10.2006, 16:11


Мастер участка

Группа: Участник
Сообщений: 575



Не, я так понимаю Юрию необходимо в процессе работы менять размер и содержимое матрицы.

Непонятно зачем для этого использовать консольное приложение wink.gif
Юрий
Отправлено: 27.10.2006, 17:19


Ученик-кочегар

Группа: Участник
Сообщений: 12



Спасибо, Это то что надо..... yahoo.gif
-------------------------------------------
#include
#include
#include
#pragma hdrstop
#pragma argsused

int main(int argc, char* argv[])
{
int ar[3][3];
for(int i=0; i<3; i++)
{
for(int j=0; j<9; j++)
cin>>ar[i][j];
for(int i=0; i<3; i++)
{
for(int j=0; j<3; j++)
cout << " " << ar[i][j];
cout << endl;
}
}
getch();
return 0;
}
//---------------------------------------------------------------------------

Учиться,учиться и учиться smile.gif

Отредактировано Юрий — 27.10.2006, 18:22

Вернуться в Вопросы программирования в C++Builder