Помогите сделать лабу по проге "С"
Написати і відлагодити програму, в якій:
- з клавіатури вводиться двовимірний масив дійсних чисел розміром 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;
}```
Не знаю как реализовать последний пункт (выделил)