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

Инициализация двухмерного массива

Читайте также:
  1. Вычисление суммы элементов массива
  2. Обработка одномерного массива
  3. Одномерные и двумерные массивы. Базовые алгоритмы работы с массивами.
  4. Поиск максимального (минимального) элемента массива и его индекса
  5. Поиск минимального и максимального элементов массива
  6. Практическая работа №5. Работа с массивами

МАССИВЫ

Массив – это конечная поименованная последовательность однотипных величин.

Описание массива:

<тип> <имя> [ <размерность> ];

[ ] – это часть синтаксиса.

Размерность массива вместе с типом его элементов определяет объём памяти, который необходим для размещения массива. Поэтому размерность массива может быть указана только константой или константным выражением.

 

Например:

const N=15;

char mas[n]; массив из 15 символов.

float a[10]; массив из 10 вещественных чисел.

 

Инициализирующие значения записываются в фигурных скобках.

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

 

Например:

int b[5] = {4, 3, 1};

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

 

Если размерность не указана, то должен быть указан инициализатор. В этом случае память выделяется по количеству инициализирующих значений.

Например:

int a[] = {4, 7, 3, 1, 2};//будет создан массив из 5 элементов

 

Массивы обрабатываются поэлементно. Чтобы обратиться к элементу массива, надо после имени массива в квадратных скобках указать номер элемента (индекс). Элементы массива нумеруются от 0.

 

Например:

Номер элемента i          
Элементы массива a          
Обращение к i элементу a[0] a[1] a[2] a[3] a[4]

 

Пример 1. Вычислить сумму элементов массива

void main () {

int i, sum;

int m [4] = { 3, 8, 4, 3 };

for (i = 0; sum = 0; i< 4; i + +)

sum + = m [ i ];

}

Пример 2. Найти максимальный элемент массива

void main ()

{ const int n = 10;

int i, max;

int m [ n ];

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

fscanf(“%d”,m [ i ];

max=m[0];

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

if(max<m[i])max= m [ i ];

printf(“maximum=%d”,max);

}

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

Многомерные массивы задаются указанием каждого измерения в квадратных скобках;

<тип> <имя> [ размерность ][ размерность];

/ \

к-во к-во

строк столбцов

Например:

int m [ 6 ][8 ]; таблица из 6 строк и 8 столбцов.

Теоретически размерность массивов не ограничена.

В памяти массив размещается построчно. При переходе к очередному элементу быстрее всего меняется самый правый элемент.

Для доступа к элементу надо указать все его индексы.

m [ 2 ][ 4 ]; 4 элемент 2 строки

m [ i ][ j ]; j элемент i строки

 

Инициализация двухмерного массива

Задается общий список элементов, в том порядке, как они располагаются в памяти.

int a[ 3 ][ 5] = { 1, 2, 4, 6, 1, 5, 7, 3, 0, 1, 7, 2 }

1 2 4 6 1

5 7 3 0 1

7 2 0 0 0

Двухмерный массив можно представить как массив массивов, каждый массив заключается в свои фигурные скобки. При этом начальные значения можно указывать не для всех элементов.

int a [ 3 ][ 5 ] = {{ 1, 2, 3}, { 1, 2 }, { 1}};

1 2 3 0 0

1 2 0 0 0

1 0 0 0 0

Если для каждой строки задать хотя бы одно инициализирующее значение, то количество строк можно не указывать.

int a [ ][ 5 ] = {{ 1, 2 }, { 1 }, { 3, 4, 5, 6 }};

1 2 0 0 0

1 0 0 0 0

3 4 5 6 0

Пример:

Дана матрица размером 10х10. Обнулить элементы, лежащие выше главной диагонали

#include "stdafx.h"

int _tmain(int argc, _TCHAR* argv[])

{int m[10][10];

int i,j;

//заполнение массивав

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

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

m[i][j]=i*10+j;

//печать массива в виде таблицы

for(i=1;i<10;i++){

printf("\n");

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

printf("%d\t",m[i][j]);

}

//обнуление элементов, лежащих выше главной диагонали

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

for(j=i+1;j<10;j++)

m[i][j]=0;

 

//печать матрицы

for(i=1;i<10;i++){

printf("\n");

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

printf("%d\t",m[i][j]);

}

return 0;

}

 


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


<== предыдущая страница | следующая страница ==>
Assignment № 1| Будем считать, что объявили массив из 10 элементов.

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