Здравствуйте. Помогите, пожалуйста, с задачей: Проверить упорядочены ли элементы столбцов матрицы. Если нет, то упорядочить их в порядке возрастания методом просеивания.
Вот я сделал ввод-вывод матрицы:
Код
#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <stdlib.h>
int main ()
{
int a[10][10];
int i, j, n, m, r, k, p;
printf ("Vvedite razmer matrici n=");
scanf ("%d", &n);
k=0;
for (i=0; i<n; i++)
for (j=0; j<n; j++)
{
printf("a[%d][%d]=", i, j);
scanf("%d", &a[i][j]);
}
for (i=0; i<n; i++)
{
for (j=0; j<n; j++)
printf("%2d", a);
printf("\n");
}
}
Проверку на упорядоченность я делаю так:
for (i = 0; i < n; i++) //просматриваем каждую строку и // проверяем, упорядочена ли она
{
k = p = 0;
for (j = 0; j < n - 1; j++)
if (A <= A[j + 1]) k++;//упорядочена ли по возрастанию
else
p++;// упорядочена ли по убыванию
if (k != n - 1 && p != n - 1) // если строка не упорядочена, //то выполняем сортировку
Я нашёл сам метод просеивания для массива:
for (i=0;i<=n-2;i++)
if (A>A[i+1])
{
r=A;
A=A[i+1];
A[i+1]=r;
j=i;
while (A<A[j-1]&&j>0)
{
r=A;
A=A[j-1];
A[j-1]=r;
j=j-1;
}
}[/j][/i]