Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
прог.doc
Скачиваний:
3
Добавлен:
19.04.2019
Размер:
3.87 Mб
Скачать

15. Вложенные циклы

for( выражение1; выражение2; выражение3 )

for( выражение4; выражение5; выражение6 )

оператор;

Одна из проблем, связанных с вложенными циклами — организация досрочного выхода из них. Для этого есть оператор досрочного завершения цикла(break).

Существует возможность организовать цикл внутри тела другого цикла. Такой цикл будет называться вложенным циклом. Вложенный цикл по отношению к циклу в тело которого он вложен будет именоваться внутренним циклом, и наоборот цикл в теле которого существует вложенный цикл будет именоваться внешним по отношению к вложенному. Внутри вложенного цикла в свою очередь может быть вложен еще один цикл, образуя следующий уровень вложенности и так далее. Количество уровней вложенности как правило не ограничивается.

Пример(Ввод b вывод матрицы)

for(i=0;i<n;i++) //ввод

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

{

printf("Введите массив a[%d][%d]",i,j);

scanf("%d",&a[i][j]);

}

for(i=0;i<n;i++) //вывод

{

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

printf("%d ",a[i][j]);

printf("\n");

}

16. Одномерный массив.

Массив - набор объектов одинакового типа, имеющих одно имя, доступ к которым осуществляется по индексам. Количество индексов определяет размерность.

Размерность массива — количество индексов, которые необходимо задать одновременно для доступа к элементу массива.

задается константой вот так:

int a[5];

Элементы массива запоминаются в памяти последовательно.

a[0]

a[1]

. . .

a[4]

Свойства одномерного массива:

-один и тот же тип

-все элементы в памяти располагаются друг за другом

-индекс первого элемента - 0

-имя массива определяет адрес начала массива (адрес первого элемента - const).

Реализация ввода элементов массива:

int a[5], i;

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

{

printf( "\n эл-т %d: ", i );

scanf( "%d", &a[i] );

}

Инициализация массива при описании:

int x[4] = { 5, 2, 1, 8 };

// размерность можно не указывать:

int x[ ] = { 5, 2, 1, 8, 9, 75 };

int A[4] = { 2 }; // последние три элементы равны 0

17. Двумерные массивы

Имя двумерного массива является указателем константы на массив указателей констант.

int x[3][4]

С элементами двумерного массива можно работать с помощью индексов

int [i][j]

Первый индекс – номер строки, второй индекс – номер столбца. Количество байт памяти, которое необходимо для хранения массива, вычисляется по формуле

Колич. байт = <размер типа данных>*<колич. строк>*<колич. столбцов>

В памяти компьютера массив располагается непрерывно по строкам, т.е. а[0][0], a[0][1], a[0][2], a[1][0].

Элементы многомерного массива располагаются таким образом, что значение последнего индекса изменяется в первую очередь.

#include <stdio.h>

const int n = 10;

int main(void)

{

int i, j, a[n][n];

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

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

{ // цикл по всем элементам

printf("Введите a[%d][%d] ", i ); // подсказка для ввода A[i]

scanf ("%d", &a[i][j]); // ввод A[i]

}

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

{

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

printf(“%d”, a[i][j])

printf(“\n”);

}

}