Массивы

Автор работы: Пользователь скрыл имя, 25 Февраля 2011 в 18:47, контрольная работа

Описание

Массив - набор данных одного и того же типа, собранных под одним именем. Каждый элемент массива имеет свой порядковый номер, который называется индексом. Соответственно каждый элемент массива определяется именем массива и порядковым номером элемента. Индекс (номер элемента) в языке Си всегда целое число.

Работа состоит из  1 файл

Курсач.docx

— 37.27 Кб (Скачать документ)

int a[3][4]={{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};

Количество  инициализаторов не обязано совпадать  с количеством элементов массива, Если инициализаторов меньше, то оставшиеся значения элементов не определены.

Например  следующие две инициализации  различны

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

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

В первой случаем массив заполниться так

1 2 3 4
5 6 7  

а во втором случае так

1 2 3 4 5
6 7      

Пустые  клетки это неопределённые значения.

Символьные  массивы могут инициализироваться как обычный массив:

char str[15]={'H', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd', '!'};

а могут  как строка символов:

char str[15]="Hello world!";

В последнем  случае в конец строковой константы  компилятор поставит символ '\0'.

Допускается объявление и инициализация массива  без указания размера массива. Такие  массивы называют открытыми массивами.

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

Компилятор  сам определит размер массива. Таким  способом очень удобно объявлять  строки

char str[]="Необходимое число элементов  массива компилятор определит  сам";

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

Например,

void main(void)

{

void myfunc(int mas[]); // Объявление функции

int mas[<нужное число элементов>]; // объявление массива нужного размера

...

myfunc(mas); // сюда можно подавать массивы  с разными размерами

}

void myfunc(int mas[]) // mas - открытый массив

{

// .........что-то  делается с массивом

}

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

Например, этот массив можно проинициализировать  так

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

6, 7, 8, 9, 10};

т.е. он будет состоять из двух строк и  пяти столбцов. 

Практическая  часть

Задача: Целочисленная, квадратная матрица. Найти произведение элементов матрицы. Найти произведение диагоналей, параллельных главное диагонали  матрицы

            Решание:

#include <iostream.h>

#include <math.h>

#include <time.h>

#include <stdlib.h>

int main()

{

srand(time(0));

int a[5] [5],i,y,c;

c=1;

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

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

{

a[i][y]= 1+ rand()% 2;

}

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

{

cout<<'\n';

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

cout<<" " << a[i][y];

}

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

{

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

{

c=c*a[i][y];

}

}

int max=1,pr1=1,pr2=1,max2=1,pr;

cout<<"\n произведение элементов матрицы  = "<<c <<" ";

for (int z = 5; z > -1; z--)

{

for (int k = 0 ; k < 5 - z ; k++)

{

if (max<a[k][k+z])

max = a[k][k+z];

}

pr1*=max;

max=1;

}

for ( z = 4; z > 0; z--)

{

for (int k = 0 ; k < 5 - z ; k++)

{

if (max2<a[k+z][k])

max2 = a[k+z][k];

}

pr2*=max2;

max2=1;

}

pr=pr1*pr2;

cout<<"\n произведение диоганалей паралельных  главной диоганли матрицы = "<<pr <<'\n';

return 0;

}

Информация о работе Массивы