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

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

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

С клавиатуры вводится двумерный массив действительных чисел размером n*n. Нужно определить среднее арифметическое элементов каждого рядка. Рядки массива сортируются за увеличением. Все действия через функции, и использовать массив через показатель. У меня есть обычное решение данной программы, нужно немного исправить код под показатели. Помогите кому не трудно. Код:
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. //С клавиатуры вводится двумерный массив действительных чисел размером n*n.
  4. // Нужно определить среднее арифметическое элементов каждого рядка.
  5. //Рядки массива сортируются за увеличением.
  6. const int N = 5;
  7. int main()
  8. {
  9. float temp, sum = 0, A[N][N];
  10. int i, j, k, nMin;
  11. for(i = 0; i < N; i++){
  12. for(j = 0; j < N; j++){
  13. printf("Enter a value for an element A[%d][%d] -> ", i, j);
  14. scanf("%f", &A[i][j]);
  15. }
  16. }
  17. for(i = 0; i < N; i++){
  18. for(j = 0; j < N; j++){
  19. nMin = j;
  20. for(k = j + 1; k < N; k++)
  21. if(A[i][k] < A[i][nMin])
  22. nMin = k;
  23. if(nMin != j){
  24. temp = A[i][j];
  25. A[i][j] = A[i][nMin];
  26. A[i][nMin] = temp;
  27. }
  28. }
  29. }
  30. puts("Sorted rows:");
  31. for(i = 0; i < N; i++){
  32. for(j = 0; j < N; j++){
  33. sum += A[i][j];
  34. printf("%9g", A[i][j]);
  35. }
  36. printf(" Arithmetic mean is %g\n", sum / N);
  37. printf("\n");
  38. sum = 0;
  39. }
  40. return 0;
  41. }

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

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. //С клавиатуры вводится двумерный массив действительных чисел размером n*n.
  4. // Нужно определить среднее арифметическое элементов каждого рядка.
  5. //Рядки массива сортируются за увеличением.
  6. int main(){
  7.     float temp, sum = 0, **A;
  8.     int i, j, k, nMin, N;
  9.  
  10.     printf("Enter size of matrix: ");
  11.     scanf("%i", &N);
  12.  
  13.     A=(float**)malloc(N*sizeof(float*));
  14.  
  15.     for(i = 0; i < N; i++){
  16.         A[i]=(float*)malloc(N*sizeof(float));
  17.         for(j = 0; j < N; j++){
  18.             printf("Enter a value for an element A[%d][%d] -> ", i, j);
  19.             scanf("%f", &A[i][j]);
  20.         }
  21.     }
  22.     for(i = 0; i < N; i++){
  23.         for(j = 0; j < N; j++){
  24.             nMin = j;
  25.             for(k = j + 1; k < N; k++)
  26.                 if(A[i][k] < A[i][nMin])
  27.                     nMin = k;
  28.             if(nMin != j){
  29.                 temp = A[i][j];
  30.                 A[i][j] = A[i][nMin];
  31.                 A[i][nMin] = temp;
  32.             }
  33.         }
  34.     }
  35.     puts("Sorted rows:");
  36.     for(i = 0; i < N; i++){
  37.         for(j = 0; j < N; j++){
  38.             sum += A[i][j];
  39.             printf("%9g", A[i][j]);
  40.         }
  41.         printf("  Arithmetic mean is %g\n", sum / N);
  42.         printf("\n");
  43.         sum = 0;
  44.     }
  45.  
  46.     for(i = 0; i < N; i++){
  47.         free(A[i]);
  48.     }
  49.  
  50.     free(A);
  51.  
  52.     return 0;
  53.  
  54. }

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

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

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


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

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

14   голосов , оценка 3.571 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы