
- •1. Краткие теоретические сведения
- •1.1. Хранение значений в массивах
- •1.2. Объявление переменной массива
- •1.3. Обращение к элементам массива
- •1.4. Использование индексной переменной
- •1.5. Инициализация массива при объявлении
- •1.6. Передача массивов в функции
- •1.8. Алгоритмы обработки двумерных массивов
- •1.8.1. Ввод и вывод матрицы
- •1.8.2. Заполнение матрицы случайными числами
- •1.8.3. Определение количество элементов, больших заданного а и расположенных в строках с нечетными номерами
- •1.8.4. Поиск в матрице строки с максимальной суммой
- •1.8.5. Определение количества строк матрицы, в которых суммы всех элементов отрицательные
- •1.8.6. Определение, есть ли в матрице столбец, содержащий хотя бы один нулевой элемент
- •1.8.7. Обработка элементов квадратных матриц относительно главной и побочной диагоналей
- •2.4.1.2. Пример для варианта 30
- •2.4.1.3. Программа
- •2.4.1.4. Тестирование
- •2.4.2. Задание 2. Выполнение вычислений в строках и столбцах матрицы
- •2.4.2.1. Условие задания
- •2.4.2.2. Пример для варианта 30
- •2.4.2.3. Программа
- •2.4.2.4. Тестирование
- •2.4.3. Задание 3. Дополнительные задачи
- •2.4.3.1. Условие задания
- •2.4.3.2. Пример для варианта 30
- •2.4.3.3. Программа
- •2.4.3.4. Тестирование
- •2.4.4. Задание 4. Перестановки строк или столбцов матрицы
- •2.4.4.1. Условие задания
- •2.4.5.2. Пример для варианта 30
- •2.4.5.3. Программа
- •2.4.5.4. Тестирование
- •2.4.6. Задание 6. Вычисление суммы элементов матрицы
- •2.4.6.1. Условие задания
- •2.4.6.2. Пример для варианта 30
- •2.4.6.3. Программа
- •2.4.6.4. Тестирование
- •2.4.7. Задание 7. Вычисление элементов одномерного массива на основе матрицы
- •2.4.7.1. Условие задания
- •2.4.7.2. Пример для варианта 30
- •2.4.2.3. Программа
- •2.4.2.4. Тестирование
- •2.4.8. Задание 8. Комбинированные задачи на двумерные массивы
- •2.4.8.1. Условие задания
- •2.4.8.2. Пример для варианта 30
- •2.4.2.3. Программа
- •2.4.2.4. Тестирование
- •2.4.9. Задание 9. Работа с матрицами
- •2.4.9.1. Условие задания
- •2.4.9.2. Пример решения задачи (вариант 30)
- •2.4.9.3. Разработка алгоритма решения
- •2.4.9.4. Определение переменных программы
- •2.4.9.5. Разработка текста программы
- •2.4.9.6. Отладка программы
- •2.4.9.7. Результаты работы программы
- •2.4.9.8. Формирование случайных чисел
- •3. Выводы
- •4. Требование к отчету
- •4. Краткие теоретические сведения.
- •5. Вопросы для самоконтроля
- •Литература
- •1. Краткие теоретические сведения 2
- •1.1. Хранение значений в массивах 2
1.8.4. Поиск в матрице строки с максимальной суммой
|
|
/* Строка с максимальной суммой*/ #include <stdio.h> int main() { int m, n, nmax, i, j; float max, s, x[10][10]; print("Введите m, n"); scanf("%d %d", &m, &n); for(i=0;i<m;i++) for(j=0;j<n;j++) { printf ("Введите x[%d][%d]=", i, j); scanf ("%f, &x[i][j]); }
print ("Матрица x:"); for(i=0;i<m; i++) { for(j=0;j<n; j++) printf("%8.2f',x[i][j]); printf("\n"); } s=0; for(j=0; j<n; j++) s =s+x[0][j]; //Нач. знач. мax - сумма элем. 0-ой стр.
max=s; nmax=0; for(i=0;i<m;i++) { s=0; for(j=0;j<n;j++) s+=x[i][j]; //Сумма элем. строк if(max<s) { max=s; nmax=i;} } рrint("Максимальная сумма %.2f в строке %d\n",max,nmax); fflush(stdin); getchar(); return(0); }
|
|
Рис. 11.4. Поиск в матрице строки с максимальной суммой |
|
|
|
1.8.5. Определение количества строк матрицы, в которых суммы всех элементов отрицательные
Определить количество строк матрицы, в которых суммы всех элементов отрицательные. Массив объявить как динамический.
|
|
/*Пример обработки двумерного динамического массива*/ include <stdio.h> include <math.h> int main ( ) { int i, j, m, n; float K, S; //Описание переменных puts (" введите n, m"); //Вывод сообщения scanf ("%d %d", &n, &m); //Ввод исх. числа строк и столбцов
float**A=new float*[n]; for(i=0; i<n; i++) A[i]=new float[m]; for(i=0; i<n; i++) for(j=0; j<m; j++) { рrint("Введиге A[%d; %d]=", i, j); scanf("%f&A[i] [j]); } K=0; for(i=0; i<n; i++) { S=0; for(j=0; j<m; j++) S=S+A[i] [j]; if(S<0) K=K+1; } printf("%f \n", K); for(i=0; i<n; //Освобождение динамической памяти delete[]A[i]; delete[]A; }
|
|
Рис. 11.5. Определение количества строк матрицы, в которых суммы всех элементов отрицательные |
|
|
|
Таблица 11.4
Таблица соответствия
Переменные в задаче |
Имя на языке Си |
Тип |
Комментарий |
S |
S |
float |
Сумма элементов i-той строки |
A |
A |
float |
Двумерный динамический массив |
K |
K |
float |
Количество искомых строк |
- |
n |
int |
Количество всех строк в матрице |
- |
m |
int |
Количество столбцов |
- |
i |
int |
Номер строки |
- |
1 |
int |
Номер столбца |
Тесты:
|
|
|
-3; |
-2; |
2; |
6; |
-3; |
|
|
|
|
|
|
|
|
|
|
|
|
|
1) |
A= |
6; |
7; |
-1; |
20; |
-4; |
|
|
|
K=2. |
|
|
|
|
||||
|
|
|
-4; |
-2; |
-3; |
6; |
-1; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-4; |
-2; |
4; |
6; |
4; |
|
|
|
|
|
|
|
|
|
|
|
|
|
2) |
A= |
3; |
5; |
7; |
2; |
0; |
|
|
|
K=0. |
|
|
|
|
||||
|
|
|
5; |
0; |
-2; |
9; |
0; |
|
|
|
|
|
|
|
|
|
|
|
|