Если что-то непонятно или не работает - спрашивайте.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define M 4
#define N 4
int main()
{
int A[M][N]; // произвольная матрица
int i, j, indx = -1;
// Автоматически заполняем матрицу ,
// находим индекс второго отрицательного элемента ,
// выводим матрицу на экран
srand((unsigned)time(NULL));
printf("Matrix: \n");
for (i = 0; i < M; i++)
for (j = 0; j < N; j++)
A[i][j] = (rand() % 201) - 100;
printf("%5d ", A[i][j]);
if ((A[i][j] < 0)&&(indx<0))
indx--;
if (indx == -3) indx = i * M + j;
}
printf("\n");
// Сортировка по убыванию элементов, расположенных
// после второго отрицательного числа
for (i = indx + 1; i < M * N - 1; i++)
indx = i;
for (j = i+1; j < M * N; j++)
if (A[0][j] > A[0][indx]) indx = j;
j = A[0][i];
A[0][i] = A[0][indx];
A[0][indx] = j;
// Вывод результата
printf("\nSort matrix: \n");
return 0;
Если что-то непонятно или не работает - спрашивайте.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define M 4
#define N 4
int main()
{
int A[M][N]; // произвольная матрица
int i, j, indx = -1;
// Автоматически заполняем матрицу ,
// находим индекс второго отрицательного элемента ,
// выводим матрицу на экран
srand((unsigned)time(NULL));
printf("Matrix: \n");
for (i = 0; i < M; i++)
{
for (j = 0; j < N; j++)
{
A[i][j] = (rand() % 201) - 100;
printf("%5d ", A[i][j]);
if ((A[i][j] < 0)&&(indx<0))
{
indx--;
if (indx == -3) indx = i * M + j;
}
}
printf("\n");
}
// Сортировка по убыванию элементов, расположенных
// после второго отрицательного числа
for (i = indx + 1; i < M * N - 1; i++)
{
indx = i;
for (j = i+1; j < M * N; j++)
if (A[0][j] > A[0][indx]) indx = j;
j = A[0][i];
A[0][i] = A[0][indx];
A[0][indx] = j;
}
// Вывод результата
printf("\nSort matrix: \n");
for (i = 0; i < M; i++)
{
for (j = 0; j < N; j++)
printf("%5d ", A[i][j]);
printf("\n");
}
return 0;
}