Определить среднее арифметическое элементов каждого рядка матрицы - C (СИ) (71265)

Узнай цену своей работы

Формулировка задачи:

С клавиатуры вводится двумерный массив действительных чисел размером n*n. Нужно определить среднее арифметическое элементов каждого рядка. Рядки массива сортируются за увеличением. Все действия через функции, и использовать массив через показатель. У меня есть обычное решение данной программы, нужно немного исправить код под показатели. Помогите кому не трудно. Код:
#include <stdio.h>
#include <stdlib.h>
//С клавиатуры вводится двумерный массив действительных чисел размером n*n.
// Нужно определить среднее арифметическое элементов каждого рядка.
//Рядки массива сортируются за увеличением.
const int N = 5;
int main()
{
    float temp, sum = 0, A[N][N];
    int i, j, k, nMin;
    for(i = 0; i < N; i++){
        for(j = 0; j < N; j++){
            printf("Enter a value for an element A[%d][%d] -> ", i, j);
            scanf("%f", &A[i][j]);
        }
    }
    for(i = 0; i < N; i++){
        for(j = 0; j < N; j++){
            nMin = j;
            for(k = j + 1; k < N; k++)
                if(A[i][k] < A[i][nMin])
                    nMin = k;
            if(nMin != j){
                temp = A[i][j];
                A[i][j] = A[i][nMin];
                A[i][nMin] = temp;
            }
        }
    }
    puts("Sorted rows:");
    for(i = 0; i < N; i++){
        for(j = 0; j < N; j++){
            sum += A[i][j];
            printf("%9g", A[i][j]);
        }
        printf("  Arithmetic mean is %g\n", sum / N);
        printf("\n");
        sum = 0;
    }
    return 0;
}

Решение задачи: «Определить среднее арифметическое элементов каждого рядка матрицы»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
//С клавиатуры вводится двумерный массив действительных чисел размером n*n.
// Нужно определить среднее арифметическое элементов каждого рядка.
//Рядки массива сортируются за увеличением.
int main(){
    float temp, sum = 0, **A;
    int i, j, k, nMin, N;
 
    printf("Enter size of matrix: ");
    scanf("%i", &N);
 
    A=(float**)malloc(N*sizeof(float*));
 
    for(i = 0; i < N; i++){
        A[i]=(float*)malloc(N*sizeof(float));
        for(j = 0; j < N; j++){
            printf("Enter a value for an element A[%d][%d] -> ", i, j);
            scanf("%f", &A[i][j]);
        }
    }
    for(i = 0; i < N; i++){
        for(j = 0; j < N; j++){
            nMin = j;
            for(k = j + 1; k < N; k++)
                if(A[i][k] < A[i][nMin])
                    nMin = k;
            if(nMin != j){
                temp = A[i][j];
                A[i][j] = A[i][nMin];
                A[i][nMin] = temp;
            }
        }
    }
    puts("Sorted rows:");
    for(i = 0; i < N; i++){
        for(j = 0; j < N; j++){
            sum += A[i][j];
            printf("%9g", A[i][j]);
        }
        printf("  Arithmetic mean is %g\n", sum / N);
        printf("\n");
        sum = 0;
    }
 
    for(i = 0; i < N; i++){
        free(A[i]);
    }
 
    free(A);
 
    return 0;
 
}

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

  1. Ввод двумерного массива действительных чисел размером n*n с клавиатуры.
  2. Выделение памяти под массив указателей на массивы float.
  3. Ввод значений элементов матрицы с клавиатуры.
  4. Сортировка строк матрицы по возрастанию.
  5. Вывод отсортированных строк матрицы.
  6. Вычисление среднего арифметического элементов каждой строки.
  7. Освобождение памяти, выделенной под матрицу и ее строки.
  8. Возврат значения 0, завершающего работу программы.

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


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

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

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