Нахождение Минимального и Максимального элементов в строке матрицы - C (СИ)
Формулировка задачи:
Доброго времени суток всем.
прошу помочь с задачей:
В заданной строке найти минимальное и максимальное целое число (числа могут быть отрицательными, в этом случае знак “минус” перед ними ставится без пробела). Предусмотреть случай, когда в строке чисел нет.
Входные данные:
a*bc&19-l sb3>4-5z%x
Выходные данные:
max=19
min=-5
Решение задачи: «Нахождение Минимального и Максимального элементов в строке матрицы»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <limits.h> #include <ctype.h> int main() { char text[256]; char* p = text; int min = INT_MAX, max = INT_MIN; int val, minus; fgets(text, sizeof(text), stdin); while (*p) { if (isdigit(*p)) { minus = ((text < p) && (*(p - 1) == '-')); val = atoi(p) * (1 - 2 * minus); while (isdigit(*(++p))) { ; } if (val < min) { min = val; } if (max < val) { max = val; } } else { p++; } } if ((max == INT_MIN) || (min == INT_MAX)) { printf("error: digits not found ...\n"); } else { printf("max = %d\nmin = %d\n", max, min); } return 0; }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с памятью, строками и математическими операциями
- Объявляем переменные: текстовый буфер для ввода, указатель на первый символ в этом буфере, переменные для хранения минимального и максимального значения, а также переменные для обработки числовых значений
- Считываем строку из стандартного ввода с помощью функции fgets
- Перемещаем указатель на первый символ в буфере
- Инициализируем переменные min и max значениями, которые соответствуют максимально большому и минимальному значению типа int
- Проходим по каждому символу в буфере
- Проверяем, является ли текущий символ числом. Если это так, то извлекаем его числовое значение, учитывая его знак
- Обновляем значения min и max, если найденные числа меньше или больше текущих значений min и max соответственно
- Проверяем, были ли найдены действительные числа. Если нет, выводим сообщение об ошибке
- Выводим значения min и max на стандартный вывод
- Возвращаем 0, чтобы указать, что программа успешно завершилась
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д