Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекция13(СЛАЙДЫ)

.pdf
Скачиваний:
4
Добавлен:
28.03.2015
Размер:
80.51 Кб
Скачать

Лекция

Одномерные и двумерные массивы

Объявление массива

спецификатор-типа описатель [константное - выражение]; спецификатор-типа описатель [ ];

Примеры объявлений массивов

int a[2][3]; /* представлено в виде

матрицы

a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2] */

double b[10]; /* вектор из 10 элементов имеющих тип double */

int w[3][3] = { { 2, 3, 4 },

{3, 4, 8 },

{1, 0, 9 } };

Примеры

int s[2][3];

s[0];

int b[2][3][4];

 

b[1][2]; b[1]; b[2][4];

char str[] = "символьный массив";

[linux]$ gcc 1.c [linux]$ ./a.out m[0]=0 n[0]=0 m[1]=0 n[1]=0
m[2]=0 n[2]=4195291 m[3]=0 n[3]=0
m[4]=0 n[4]=-711370928 [linux]$

Объявление одномерного

массива

#include <stdio.h>

int main () {

int m[5] = {0}; //Обнуление массива int n[5]; //Массив с мусором

int i;

for (i = 0; i < 5; i++) printf("m[%d]=%d\tn[%d]=%d\n",i,m[i],i,n[i]);

//printf("m[%d] = %d \t n[%d] = %d \n",i,m[i],i,n[i]); return 0;

}

Объявление многомерного массива

#include <stdio.h>

int main () { int m[5][2]; int i,j;

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

printf("m[%d][%d]=%d\n",i,j,m[i][j]); return 0;

}

[linux]$ gcc 1.c [linux]$ ./a.out m[0][0]=1356527440 m[0][1]=32539 m[1][0]=4195749 m[1][1]=0 m[2][0]=1353055000 m[2][1]=32539 m[3][0]=4195680 m[3][1]=0 m[4][0]=0 m[4][1]=0

[linux]$

Поиск наибольшего значения

#include <stdio.h> #include <math.h>

int main () {

int m[5][2] = {0}; int i,j;

//Вывод на экран for (i = 0; i < 5; i++) {

for (j = 0; j < 2; j++) { printf("m[%d][%d]=%d\n",i,j,m[i][j]);

}

}

puts("\n");

[linux]$ gcc 1.c -lm [linux]$ ./a.out m[0][0]=0 m[0][1]=0 m[1][0]=0 m[1][1]=0 m[2][0]=0 m[2][1]=0 m[3][0]=0 m[3][1]=0 m[4][0]=0 m[4][1]=0

//Элемент массива равен сумме индексов for (i = 0; i < 5; i++) {

for (j = 0; j < 2; j++) { m[i][j] = i + j;

}

}

//Вывод на экран for (i = 0; i < 5; i++) {

for (j = 0; j < 2; j++) { printf("m[%d][%d]=%d\n",i,j,m[i][j]);

}

}

puts("\n");

m[0][0]=0

m[0][1]=1

m[1][0]=1

m[1][1]=2

m[2][0]=2

m[2][1]=3

m[3][0]=3

m[3][1]=4

m[4][0]=4

m[4][1]=5

//Находим наибольший элемент int oldi, oldj, temp;

oldi = oldj = 0;

temp = pow(2, (sizeof(int) * 8) - 1) * (-1); printf("min{m[i][j]}=%d\n\n",temp);

for (i = 0; i < 5; i++) { min{m[i][j]}=-2147483648

for (j = 0; j < 2; j++) {

if (m[i][j] > temp) temp = m[i][j];

}

}

//Заполняем наибольшим значением for (i = 0; i < 5; i++) {

for (j = 0; j < 2; j++) { m[i][j] = temp;

}

}

//Вывод на экран полученный результат

for (i = 0; i < 5; i++) { for (j = 0; j < 2; j++) {

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

}

}

return 0;

}

m[0][0]=5

m[0][1]=5

m[1][0]=5

m[1][1]=5

m[2][0]=5

m[2][1]=5

m[3][0]=5

m[3][1]=5

m[4][0]=5

m[4][1]=5 [linux]$

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]