Определить среднее арифметическое элементов каждого рядка матрицы - 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; }
Объяснение кода листинга программы
- Ввод двумерного массива действительных чисел размером n*n с клавиатуры.
- Выделение памяти под массив указателей на массивы float.
- Ввод значений элементов матрицы с клавиатуры.
- Сортировка строк матрицы по возрастанию.
- Вывод отсортированных строк матрицы.
- Вычисление среднего арифметического элементов каждой строки.
- Освобождение памяти, выделенной под матрицу и ее строки.
- Возврат значения 0, завершающего работу программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д