Программа вычисления среднего арифметического каждой строки матрицы - 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;
}

Объяснение кода листинга программы

  1. Включаем необходимые заголовочные файлы
  2. Определяем функцию matrix_row_average, которая вычисляет среднее арифметическое элементов строки матрицы
  3. Определяем функцию fill, которая заполняет элементы матрицы случайными числами от 0 до 9
  4. Определяем функцию dump, которая выводит элементы матрицы на экран
  5. В функции main считываем размер матрицы с помощью scanf
  6. Выделяем память под матрицу и её строки
  7. Заполняем матрицу с помощью функции fill
  8. Выводим матрицу на экран с помощью функции dump
  9. Вычисляем среднее арифметическое каждой строки и записываем его в последнюю строку матрицы
  10. Выводим на экран средние арифметические каждой строки с помощью dump
  11. Освобождаем память, выделенную под матрицу и её строки
  12. Программа завершается с успехом, возвращая EXIT_SUCCESS

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.5 из 5
Похожие ответы