Вычислить среднее арифметическое значение элементов, лежащих на диагоналях матрицы - C (СИ)
Формулировка задачи:
Добрый день.
Помогите с программой на двумерный массив.
Вычислить среднее арифметическое значение элементов, лежащих на диагоналях матрицы С (6х6). Заменить этим значением все диагональные элементы матрицы.
Простите, не то задание скинул.
Вот то что мне надо.
Дана матрица А(10х10). Отсортировать элементы, лежащие на главной диагонали, в порядке возрастания.
Решение задачи: «Вычислить среднее арифметическое значение элементов, лежащих на диагоналях матрицы»
textual
Листинг программы
#ifdef _MSC_VER #define _CRT_SECURE_NO_WARNINGS #endif #include <stdio.h> #include <stdlib.h> #include <time.h> double** create_matrix(size_t size) { size_t i = 0; double** matrix = (double**)malloc(sizeof(double*) * size); for (i = 0; i < size; i++) matrix[i] = (double*)malloc(sizeof(double) * size); return matrix; } void free_matrix(double** matrix, size_t size) { size_t i = 0; for (i = 0; i < size; i++) free(matrix[i]); free(matrix); } void fill(double** matrix, size_t size) { size_t i = 0, j = 0; for (i = 0; i < size; i++) for (j = 0; j < size; j++) matrix[i][j] = rand() % 20; } void print_row(const double* row, size_t size) { while (size--) printf("%8.2lf ", *row++); putchar('\n'); } void print_matrix(const double** matrix, size_t size) { size_t i = size; while (i--) print_row(*matrix++, size); } double diag_sum(const double** matrix, size_t size) { double sum = 0; size_t i; for (i = 0; i < size; i++) sum += matrix[i][i]; return sum; } void replace_diag(double** matrix, double value, size_t size) { size_t i = 0; for (i = 0; i < size; i++) matrix[i][i] = value; } int main() { const size_t size = 6; double avg = 0; double** matrix = create_matrix(size); srand(time(0)); fill(matrix, size); print_matrix(matrix, size); avg = diag_sum(matrix, size) / size; replace_diag(matrix, avg, size); putchar('\n'); print_matrix(matrix, size); free_matrix(matrix, size); #ifdef _MSC_VER system("pause"); #endif return EXIT_SUCCESS; }
Объяснение кода листинга программы
- Создание двумерного массива с помощью функции
create_matrix
. - Заполнение матрицы случайными числами с помощью функции
fill
. - Вывод содержимого матрицы на экран с помощью функции
print_matrix
. - Вычисление суммы элементов главной диагонали с помощью функции
diag_sum
. - Замена значения элементов главной диагонали на среднее арифметическое с помощью функции
replace_diag
. - Вывод содержимого матрицы на экран после замены значений элементов главной диагонали с помощью функции
print_matrix
. - Освобождение памяти, выделенной под матрицу, с помощью функции
free_matrix
. - Ввод пользователем команды
pause
для приостановки работы программы в консоли Windows. - Возвращение значения
EXIT_SUCCESS
для успешного завершения программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д