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