|
|||
тип имя_массива[количество_строк][количество_столбцов]; ⇐ ПредыдущаяСтр 5 из 5 тип имя_массива[количество_строк][количество_столбцов]; тип имя_массива[количество_элементов n][количество_элементов m] = { {значение_элем. _00, значение_ элем. _0_1, … значение_ элем. _0_m-1}, {значение_ элем. _1_0, значение_ элем. _1_1, … значение_ элем. _1_m-1}, … {значение_ элем. _n-1_0, значение_ элем. _n-1_1, … значение_ элем. _n-1_m-1} };
Пример. Объявление двумерного массива int mas1[10][15]; int a[3][3] = { { 1, 2, 3 }, { 4, 5, 6 }, {7, 8, 9} };
Для перебора всех элементов массива необходимо организовать цикл.
Пример. Подсчет суммы и среднего арифметического элементов двумерного массива #include < stdio. h> #include < stdlib. h> #define N 4 #define M 3
void main() { int mas[N][M] = {{10, 2, 15, 7}, {14, 3, 11, 6}, {19, 0, 14, 13}}; int sum=0, i, j; float sr; for (i=0; i< N; i++) { for (j=0; j< M; j++) { sum+=mas[i][j]; } } printf(" Summa = %d\n", sum); //вывод результата, равного 32 sr=(float)sum/(N*M); // приведение суммы к вещественному типу и //подсчет среднего арифметического printf(" Srednee = %6. 3f", sr); //вывод результата, равного 8. 500 }
Пример. Заполнение и вывод двумерного массива #include < stdio. h> #include < stdlib. h> #define N 5 #define M 4
int main() { int mas[N][M]; int i, j=0; for (i=0; i< N; ++i) { for (j=0; j< M; ++j) { mas[i][j] = i+j; //заполнение массива значениями i+j } } for (i=0; i< N; i++) { for (j=0; j< M; j++) { printf(" %d", mas[i][j]); //вывод элементов массива } printf(" \n" ); } }
Пример. Поиск максимального элемента и его индексов в двумерном массиве #include < stdio. h> #include < stdlib. h> #include < time. h> #define N 8 #define M 10
void main() { srand(time(0)); int mas1[N][M]; int Max, i, j, indi, indj; for (i=0; i< N; i++) { for (j=0; j< M; j++) { mas1[i][j] = 15+rand()%30; //заполнение массива значениями от 15 до 44 } } for (i=0; i< N; i++) { for (j=0; j< M; j++) { printf(" %3d", mas1[i][j]); //вывод элементов массива } printf(" \n" ); } Max=mas1[0][0]; //задание переменной Max начального значения indi=0; //задание переменной indi начального значения indj=0; //задание переменной indj начального значения //поиск максимального элемента for (i=1; i< N; i++) //перебор по строкам { for (j=0; j< M; j++) //перебор по столбцам { if (mas1[i][j]> Max) //если встретившийся элемент массива больше //текущего значения переменной Max { Max=mas1[i][j]; //занесение в переменную Max значения элемента массива indi=i; //запоминание номера строки, содержащей максимальный элемент indj=j; //запоминание номера столбца, содержащего максимальный элемент } } } printf(" Max = mas[%d][%d] = %d\n", indi, indj, Max); //вывод значения максимального //элемента и индексов этого элемента }
Пример. Поиск минимальных элементов в столбцах двумерного массива #include < stdio. h> #include < stdlib. h> #include < time. h> #define N 8 #define M 10
void main() { srand(time(0)); int mas1[N][M]; int Min, i, j; for (i=0; i< N; i++) { for (j=0; j< M; j++) { mas1[i][j] = 15+rand()%30; //заполнение массива значениями от 15 до 44 } } for (i=0; i< N; i++) //перебор по строкам { for (j=0; j< M; j++) //перебор по столбцам { printf(" %3d", mas1[i][j]); //вывод элементов массива } printf(" \n" ); } //поиск минимальных элементов в столбцах for (j=0; j< M; j++) //перебор по столбцам { Min=mas1[0][j]; //задание переменной Min начального значения for (i=1; i< N; i++) //перебор по строкам { if (mas1[i][j]< Min) { Min=mas1[i][j]; } } printf(" V stolbce %d Min = %d\n", j, Min); //вывод значений минимальных //элементов в столбцах } }
Пример. Блок-схема алгоритма подсчета минимальных элементов в столбцах Код: //поиск минимальных элементов в столбцах for (j=0; j< M; j++) //перебор по столбцам { Min=mas1[0][j]; //задание переменной Min начального значения for (i=1; i< N; i++) //перебор по строкам { if (mas1[i][j]< Min) { Min=mas1[i][j]; } } printf(" V stolbce %d Min = %d\n", j, Min); //вывод значений минимальных //элементов в столбцах } Блок-схема:
Работа со строками
Строки в Си представляют собой одномерные массивы, заканчивающиеся символом конца строки ‘\0’.
Пример инициализации строки: char s[41]; //40 элементов для значений и один для завершающего нуля char a[] = " string"; char b[] = { 's', 't', 'r', 'i', 'n', 'g', '\0'};
Для ввода строки с клавиатуры используют функции scanf() и gets(): char s[50]; char str[50]; scanf(" %s", s); gets(str);
Для вывода значения строки на экран используют функции printf() и puts(). printf (" %s", s); puts(str);
Для работы со строками в Си предусмотрена библиотека string. h
http: //www. chitay. org/c/main. htm#08
|
|||
|