Программа вычисления среднего арифметического каждой строки матрицы - C (СИ)
Формулировка задачи:
Составить программу вычисления среднего арифметического каждой строки матрицы B(N, N) и записать данные значения в побочную диагональ таблицы.
Решение задачи: «Программа вычисления среднего арифметического каждой строки матрицы»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <time.h> float matrix_row_average(float **matrix, size_t row, size_t size) { float sum = 0.0F; size_t i; for (i = 0; i < size; i++) { sum += matrix[row][i]; } return sum / (float)size; } void fill(float **matrix, size_t rows, size_t cols) { size_t i, j; for (i = 0; i < rows; i++) { for (j = 0; j < cols; j++) { matrix[i][j] = rand() % 10; } } } void dump(const float** matrix, size_t rows, size_t cols) { size_t i, j; for (i = 0; i < rows; i++) { for (j = 0; j < cols; j++) { printf("%f ", matrix[i][j]); } putchar('\n'); } } int main() { float **matrix; size_t n, i; srand(time(NULL)); printf("Matrix size: "); if (scanf("%zu", &n) == 1) { matrix = (float**)malloc(sizeof(float*) * n); for (i = 0; i < n; i++) { matrix[i] = (float*)malloc(sizeof(float) * n); } fill(matrix, n, n); dump((const float**)matrix, n, n); for (i = 0; i < n; i++) { matrix[i][n - i - 1] = matrix_row_average(matrix, i, n); } puts("-------------"); dump((const float**)matrix, n, n); for (i = 0; i < n; i++) { free(matrix[i]); } free(matrix); } else { printf("Invalid input\n"); } return EXIT_SUCCESS; }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
- Определяем функцию
matrix_row_average
, которая вычисляет среднее арифметическое элементов строки матрицы - Определяем функцию
fill
, которая заполняет элементы матрицы случайными числами от 0 до 9 - Определяем функцию
dump
, которая выводит элементы матрицы на экран - В функции
main
считываем размер матрицы с помощьюscanf
- Выделяем память под матрицу и её строки
- Заполняем матрицу с помощью функции
fill
- Выводим матрицу на экран с помощью функции
dump
- Вычисляем среднее арифметическое каждой строки и записываем его в последнюю строку матрицы
- Выводим на экран средние арифметические каждой строки с помощью
dump
- Освобождаем память, выделенную под матрицу и её строки
- Программа завершается с успехом, возвращая
EXIT_SUCCESS
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д