Определить, является ли последовательность элементов некоторой строки массива упорядоченной - C (СИ)
Формулировка задачи:
12.141. а)Дан двумерный массив.Составить программу которая оперделяет, является ли последовательность элементов некоторой строки массива упорядоченной по неубыванию
В случае отрицательного ответа в обеих задачах должны быть напечатаны координаты первого элемента, нарушающего указанную упорядоченность
Решение задачи: «Определить, является ли последовательность элементов некоторой строки массива упорядоченной»
textual
Листинг программы
#include <stdio.h>
#include <string.h>
int main() {
int n, m;
scanf("%d%d", &n, &m);
static int arr[128][128];
int y, x;
for (y = 0; y < n; y++)
for (x = 0; x < m; x++)
scanf("%d", &arr[y][x]);
scanf("%d", &y); // Номер строки для анализа, считая с единицы
y--;
for (x = 1; x < m; x++)
if (arr[y][x] < arr[y][x - 1]) {
printf("%d %d\n", x, y); // Искомые координаты, считая с нуля
return 0;
}
puts("Correct"); // Последовательность действительно неубывающая
return 0;
}
Объяснение кода листинга программы
Вывод: В данном коде осуществляется поиск неубывающей последовательности элементов в строке массива, где каждый элемент представлен целочисленным значением. Если такая последовательность найдена, то выводятся её координаты в виде двух чисел, иначе выводится сообщение Correct.
Список действий:
- Ввод чисел n и m с помощью функции scanf.
- Объявление статического двумерного массива arr размером 128х128.
- Ввод элементов массива с помощью цикла for и функции scanf.
- Ввод номера строки для анализа с помощью функции scanf.
- Уменьшение номера строки на единицу, так как в C строки индексируются с нуля.
- Проверка каждого элемента массива по строке с помощью цикла for и условия if.
- Если текущий элемент меньше следующего, то выводятся координаты найденной неубывающей последовательности и программа завершается.
- Вывод сообщения
Correct, если неубывающая последовательность не найдена. - Возврат 0, чтобы программа завершилась.