Отсортировать каждую строку матрицы по возрастанию - C (СИ)
Формулировка задачи:
нужно отсортировать каждую строку двумерной матрицы по возростанию. если можно с объяснением.
примерно имею следующий код:
#include <stdio.h>
int main(void)
{
int a[2][4];
int i, j, z,k,y;
printf(" vvedite massiv: \n");
for (i = 0; i < 2; i++)
for (k = 0; k < 4; k++)
scanf("a[%d][%d]", &a[i][k]);
for (i = 0; i < 1; i++)
{
z = a[i];
for (j = i - 1; j >= 0; j--)
if (z < a[j]) {
a[j + 1] = a[j];
a[j] = z;
}
}
for (i = 1; i < 2; i++)
{
y = a[i];
for (j = i - 1; j >= 0; j--)
if (y < a[j]) {
a[j + 1] = a[j];
a[j] = y;
}
}
printf("\n otsortirovannyi massiv: \n", a[i]);
for (i = 0; i < 2; i++)
for (k = 0; k < 4; k++)
printf("%d%d\n", a[i][j]);Решение задачи: «Отсортировать каждую строку матрицы по возрастанию»
textual
Листинг программы
#include <stdio.h>
int main(void)
{
int a[2][4];
int i, j, z,k;
printf(" vvedite massiv: \n");
for (i = 0; i < 2; i++)
for (k = 0; k < 4; k++)
scanf("%d", &a[i][k]);
for (k = 0; k < 2; k++)
for(i=4-1;i>=0;i--)
for (j = 1; j<=i; j++)
if (a[k][j-1]>a[k][j]) {
z=a[k][j-1];
a[k][j-1]=a[k][j];
a[k][j]=z;
}
printf("\n otsortirovannyi massiv: \n");
for (i = 0; i < 2; i++)
{
for (k = 0; k < 4; k++)
printf("%d ", a[i][k]);
printf("\n");
}
return 0;
}
Объяснение кода листинга программы
- Подключение стандартной библиотеки ввода-вывода (stdio.h)
- Объявление переменных:
- a[2][4] - массив из 2 строк по 4 элемента
- i, j, z, k - индексы для прохода по массиву
- Ввод данных с помощью функции scanf:
- Пользователь вводит 2 строки по 4 числа
- Прямой проход по массиву для сортировки:
- Внешний цикл для прохода по строкам (k)
- Внутренний цикл для прохода по столбцам (i)
- Условие для определения необходимости перестановки элементов (a[k][j-1]>a[k][j])
- Если условие выполняется, то производится перестановка элементов
- Вывод отсортированного массива:
- Внутренний цикл для прохода по столбцам (i)
- Внешний цикл для прохода по строкам (k)
- Вывод каждого элемента массива с помощью функции printf
- Возврат 0 для завершения программы