В строке найти максимальное и минимальное число - C (СИ)
Формулировка задачи:
В заданной строке найти минимальное и максимальное целое число (числа могут быть отрицательными, в этом случае знак “минус” перед ними ставится без пробела). Предусмотреть случай, когда в строке чисел нет.
Входные данные:
a*bc&19-l sb3>4-5z%x
Выходные данные:
max=19
min=-5
Решение задачи: «В строке найти максимальное и минимальное число»
textual
Листинг программы
#include <stdio.h> #include <string.h> #include <ctype.h> #include <stdlib.h> int i_sort(const void *a, const void *b) { return *(int*)a - *(int*)b; } int main(void) { int i, j = 0; char *word; int digit[80]; char text[] = "a*bc&19-l sb3>4-5z%x"; // char text[] = "a*bc&19-l sb3>4-5z%x :kjfasdf394 lskdj 3333"; //вариант проверки // char text[] = "a*bc&-lsb>-z%x:kjfasdflskdj"; //проверка вывода ошибки char buff[80]; for(i = 0; i < sizeof(text); i++) { if(isdigit(text[i]) || (text[i] == '-' && isdigit(text[i+1]))) { buff[j] = text[i]; if(!isdigit(text[i+1])) { j++; buff[j] = ' '; } j++; } } if(j == 0) puts("ERROR: цифр в строке не найдено"), exit(1); word = strtok(buff, " "); for(i = 0; word != NULL; i++) { digit[i] = atoi(word); word = strtok(NULL, " "); } i--; puts("Обнаружен ряд цифр в строке:"); for(j = 0; j < i; j++) printf("%d ", digit[j]); qsort(digit, i, sizeof(int), i_sort); puts("\nОтсортированый массив:"); for(j = 0; j < i; j++) printf("%d ", digit[j]); puts("\nВывод крайних значений:"); printf("max=%d\nmin=%d\n", digit[i-1], digit[0]); return 0; }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
- Создаем функцию сортировки, которая будет сравнивать два числа
- В функции main() создаем переменные и строки для работы программы
- Проходим по каждому символу в строке и проверяем, является ли он числом или знаком, если да, то добавляем его в буфер
- Если после прохода по всем символам в буфере пусто, выводим сообщение об ошибке и завершаем программу
- Проходим по каждому слову в буфере и преобразуем его в число, сохраняем числа в массиве
- Сортируем массив чисел
- Выводим отсортированный массив чисел
- Выводим максимальное и минимальное значение из массива чисел
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д