Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Ввод/вывод двумерных массивов осуществляется в двух вложенных циклах

Читайте также:
  1. В обратных термодинамических циклах
  2. Выплата по карточкам осуществляется сразу же после окончания событий
  3. Деятельность осуществляется в целях повышения
  4. Занятия по английскому языку носят практический характер, овладение материалом осуществляется на основе лексических и грамматических моделей.
  5. Заполнение массивов
  6. Инициализация массивов

Многомерные массивы

Многомерные массивы - это массивы с более чем одним индексом.

Чаще всего используются двумерные массивы.

При описании многомерного массива необходимо указать C++, что массив имеет более чем одно измерение.

Пример

int t[3][4];

Описывается двумерный массив, из 3 строк и 4 столбцов.

Элементы массива:

t[0][0] t[0][1] t[0][2] t[0][3]t[1][0] t[1][1] t[1][2] t[1][3]t[2][0] t[2][1] t[2][2] t[2][3]

При выполнении этой команды под массив резервируется место. Элементы массива располагаются в памяти один за другим.

Пусть это линейка памяти:

Ввод/вывод двумерных массивов осуществляется в двух вложенных циклах

Ввод с клавиатуры Случайное задание из интервала [a,b]
#include<iostream.h> #include<conio.h> int main() { int i,j; cout <<"kol-wo strok i stolbcow"<<endl; cin >>i>>j; cout <<endl; int const n=i,m=j; int A[n][m]; //Wwod for (i=0;i<n;++i) for (j=0;j<m;++j) { cout <<"A["<<i<<"]["<<j<<"]="; cin >>A[i][j]; } cout <<endl; //Wiwod for (i=0;i<n;++i) { for (j=0;j<m;++j)cout <<A[i][j]<<" "; cout <<endl; } getch(); return 0; } #include<iostream.h> #include<conio.h> int main() { srand(time(NULL)); int i,j,a,b; cout <<"kol-wo strok i stolbcow"<<endl; cin >>i>>j; cout <<endl; int const n=i,m=j; int A[n][m]; cout <<"granici"<<endl; cin >>a>>b; cout <<endl; //Wwod for (i=0;i<n;++i) for (j=0;j<m;++j) A[i][j]=rand()%(b-a+1)+a; cout <<endl; //Wiwod for (i=0;i<n;++i) { for (j=0;j<m;++j)cout <<A[i][j]<<" "; cout <<endl; } getch(); return 0; }

Для работы с массивами строк лучше использовать указатели:

char names [3] [20]= {{"Иванов"},{"Петров"},{"Сидоров "}};

Схематично можно изобразить следующим образом:

Для вывода строки можно использовать указатели:

cout<< *names; //Печать Иванов cout<< *(names+1); //Печать Петров cout<< *(names+2); //Печать Сидоров #include<iostream.h>#include<conio.h>int main(){ int i,j; cout <<"kol-wo strok "<<endl; cin >>i; cout <<"max dlina stroki"<<endl; cin >>j; cout <<endl; int const n=i,m=j; char A[n][m]; //Wwod for (i=0;i<n;++i) { cout <<"Stroka "<<i<<"="<<endl; cin>>*(A+i); cout <<endl; } //Wiwod for (i=0;i<n;++i) { cout<<i<<"-"<<*(A+i); cout <<endl; } getch();return 0;}

 

Задача1:

Массив A[n][m] задается случайно из интервала [-10;10] Заменить все отрицательные элементы этого массива на их модули и сосчитать их количество. Новый массив распечатать в виде таблицы.

#include<iostream.h>

#include<conio.h>

#include<math.h>

int main()

{

srand(time(NULL));

int i,j,a,b;

cout <<"kol-wo strok i stolbcow"<<endl;

cin >>i>>j;

cout <<endl;

int const n=i,m=j;

int A[n][m];

a=-10; b=10;

cout <<endl;

//Wwod

for (i=0;i<n;++i)

for (j=0;j<m;++j)

A[i][j]=rand()%(b-a+1)+a;

cout <<endl;

//Wiwod

for (i=0;i<n;++i)

{

for (j=0;j<m;++j)cout <<A[i][j]<<" ";

cout <<endl;

}

cout <<endl;

int k=0;

//reschenie

for (i=0;i<n;++i)

for (j=0;j<m;++j)

if (A[i][j]<0)

{A[i][j]=abs(A[i][j]);

k=++k;

}

//Wiwod

for (i=0;i<n;++i)

{

for (j=0;j<m;++j)cout <<A[i][j]<<" ";

cout <<endl;

}

cout <<"k="<<k<<endl;

getch();

return 0;

}

 

 

Задача2:

Массив A[n][m] вводится с клавиатуры. Найти максимальный элемент в каждой строке и полученные элементы распечатать в столбик. Найти минимальный элемент в каждом столбце и полученные элементы распечатать в строчку.

#include<iostream.h>

#include<conio.h>

int main()

{

int i,j;

cout <<"kol-wo strok i stolbcow"<<endl;

cin >>i>>j;

cout <<endl;

int const n=i,m=j;

int A[n][m];

//Wwod

for (i=0;i<n;++i)

for (j=0;j<m;++j)

{

cout <<"A["<<i<<"]["<<j<<"]=";

cin >>A[i][j];

}

cout <<endl;

//Wiwod

for (i=0;i<n;++i)

{

for (j=0;j<m;++j)cout <<A[i][j]<<" ";

cout <<endl;

}

//max w stroke

cout <<"max w stroke"<<endl;

int max;

for (i=0;i<n;++i)

{

max=A[i][0];

for (j=1;j<m;++j)

if (A[i][j]>max)max=A[i][j];

cout <<i<<"-"<<max<<endl;

}

//min w stolbce

cout <<"min w stolbce"<<endl;

int min;

for (j=0;j<m;++j)

{

min=A[0][j];

for (i=1;i<n;++i)

if (A[i][j]<min)min=A[i][j];

cout <<min<<" ";

}

getch();

return 0;

}

 


Дата добавления: 2015-07-24; просмотров: 119 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Тип шкалы определяется| Методы многомерных классификаций.

mybiblioteka.su - 2015-2024 год. (0.01 сек.)