@Anthony_1998

Как правильно работать с матрицами в С?

Здравствуйте. Помогите, пожалуйста, с задачей: Проверить упорядочены ли элементы столбцов матрицы. Если нет, то упорядочить их в порядке возрастания методом просеивания.
Вот я сделал ввод-вывод матрицы:
#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[i][j]);
	printf("\n");
}               
}

Проверку на упорядоченность я делаю так:
for (i = 0; i < n; i++) //просматриваем каждую строку и
 // проверяем, упорядочена ли она
{
	k = p = 0;	
	for (j = 0; j < n - 1; j++)
     	if (A[i][j] <= A[i][j + 1]) 
k++;//упорядочена ли по возрастанию
		else
			p++;// упорядочена ли по убыванию
	if (k != n - 1 && p != n - 1) // если строка не упорядочена,
		//то выполняем сортировку

Я нашёл сам метод просеивания для массива:
for (i=0;i<=n-2;i++)
 if (A[i]>A[i+1])
 {
  r=A[i];
  A[i]=A[i+1];
  A[i+1]=r;
  j=i;
  while (A[j]<A[j-1]&&j>0)
  {
    r=A[j];
    A[j]=A[j-1];
    A[j-1]=r;
    j=j-1;
  }
}

Но как его сделать для матрицы?
  • Вопрос задан
  • 120 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Farwisdomer
Матрица это массив массивов, прогоните для каждой каждой строчки матрицы отдельно.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы