Нахождение Минимального и Максимального элементов в строке матрицы - 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;
}

Объяснение кода листинга программы

  1. Включаем необходимые заголовочные файлы для работы с памятью, строками и математическими операциями
  2. Объявляем переменные: текстовый буфер для ввода, указатель на первый символ в этом буфере, переменные для хранения минимального и максимального значения, а также переменные для обработки числовых значений
  3. Считываем строку из стандартного ввода с помощью функции fgets
  4. Перемещаем указатель на первый символ в буфере
  5. Инициализируем переменные min и max значениями, которые соответствуют максимально большому и минимальному значению типа int
  6. Проходим по каждому символу в буфере
  7. Проверяем, является ли текущий символ числом. Если это так, то извлекаем его числовое значение, учитывая его знак
  8. Обновляем значения min и max, если найденные числа меньше или больше текущих значений min и max соответственно
  9. Проверяем, были ли найдены действительные числа. Если нет, выводим сообщение об ошибке
  10. Выводим значения min и max на стандартный вывод
  11. Возвращаем 0, чтобы указать, что программа успешно завершилась

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.846 из 5
Похожие ответы