Помогите сделать лабу по проге "С"

Написати і відлагодити програму, в якій:

  • з клавіатури вводиться двовимірний масив дійсних чисел розміром n*n;
  • перевіряється правильність прийому масиву;
  • рядки масиву сортуються за збільшенням; ** - елементи 1-ого і останнього рядка міняються місцями.** Результати всіх дій виводити на екран.
        #include "stdafx.h" 
        #include <stdlib.h> 
        #include <stdio.h> 
        #include <locale.h> 
        #include <malloc.h> 
        #include <conio.h> 

        int main()
        {
            int i;
            int j;
            int n;
            int m;
            float tmp;
            float tp;
            float arr;
            setlocale(LC_ALL, "RUS");
            printf("~~~~~~~~Задание~~~~~~~~~\nВ матрице, введенной с клавиатуры, выполняется:\n-сортировка рядов\n-первый и последний ряд меняются местами\n\n");
            printf("Введите размер массива n*n (не больше 6): ");        //введение размера массива

            while ((((!(scanf_s("%d", &n))) || ((n < 2) || (n > 6)))))
            {                                //проверка ввода размера массива с               возможностью повторного ввода    
                fflush(stdin);
                printf("Ошибка!!\n");
                printf("Попробуйте еще раз!\n");
                printf("\nВведите размер массива n*n (не больше 6): ");
            }


            if ((arr = (float)malloc(n * sizeof(float*))) == NULL)              // выделение памяти и проверка, выделилась ли память 
            {
                printf("К сожелению, память не выделена...");
                _getch();
                return 1;
            }

            for (i = 0; i < n; )
            {
                if ((arr[i] = (float*)malloc(n * sizeof(float))) == NULL)        // выделение памяти и проверка, выделилась ли память 
                {
                    printf("К сожелению, память не выделена...");
                    _getch();
                    return 1;
                }
                i++;

            }

            for (i = 0; i < n; i++)                            //заполнение массива с клавиатуры
            {
                for (j = 0; j < n; )
                {
                    printf("arr[%d][%d] = ", i, j);
                    while (!(scanf_s("%f", &(arr[i][j]))))        //проверка ввода каждого элемента с возможностью повторного ввода 
                    {
                        fflush(stdin);
                        printf("Ошибка!!\n");
                        printf("Попробуйте еще раз!\n");
                        printf("arr[%d][%d] = ", i, j);
                    }
                    j++;
                }
            }

            printf("\nИсходная матрица :\n\n");                //вывод на экран исходной заполненой матрицы

            for (i = 0; i < n; i++)
            {
                for (j = 0; j < n; j++)
                {
                    printf("%.3f  ", (arr[i][j]));
                }
                printf("\n");
            }


            for (m = 0; m < n; m++)                    //сортировка матрицы по возрастанию методом выбора
            {
                for (i = 0; i < n; i++)
                {
                    for (j = i; j < n; j++)
                    {
                        if (arr[m][i] > arr[m][j])
                        {
                            tmp = arr[m][i];
                            arr[m][i] = arr[m][j];
                            arr[m][j] = tmp;
                        }
                        else
                        {
                        }
                    }
                }
            }

            printf("\nОтсортированая матрица :\n\n");

            for (i = 0; i < n; i++)                      //вывод на екран отсортированой по строкам матрицы
            {
                for (j = 0; j < n; j++)
                {
                    printf("%.3f  ", (arr[i][j]));
                }
                printf("\n");
            }


            printf("\nМатрица, в которой первый и последний ряд поменяны местами :\n\n");

            for (i = 0; i < n; i++)                      //вывод матрицы-результат роботы программы
            {
                for (j = 0; j < n; j++)
                {
                    if (i == 0)
                    {
                        tp = arr[i][j];
                        arr[i][j] = arr[n - 1][j];
                        arr[n - 1][j] = tp;
                    }
                    printf("%.3f  ", (arr[i][j]));
                }
                printf("\n");
            }

            for (i = 0; i > n; i++)                      //освобождение памяти
            {
                free(arr[i]);
            }

            free(arr);
            _getch();
            return 0;
        }```

Не знаю как реализовать последний пункт (выделил) 




Ответы (0 шт):