Программа неправильно находит min и max в строке - C (СИ)
Формулировка задачи:
Помогите найти ошибку
Он неправильно находит min и max в строке
Листинг программы
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- int main()
- {
- int a, b, c, max, i, min;
- scanf("%d", &a);
- char str[a];
- scanf("%s", str);
- for (i=0; i<a; i++);
- {
- if ((str[i-1]<str[i]) && (str[i]>str[i+1]))
- {
- max=str[i];
- }
- if ((str[i-1]>str[i]) && (str[i]<str[i+1]))
- {
- min=str[i];
- }
- }
- for (i=0; i<a; i++);
- {
- if ((str[i-1]>max) && (str[i+1]<max))
- {
- a = str[i];
- printf("%d", a);
- }
- if ((str[i-1]<min) && (str[i+1]>min))
- {
- b = str[i];
- printf("%d", b);
- }
- }
- return 0;
- }
Решение задачи: «Программа неправильно находит min и max в строке»
textual
Листинг программы
- #define _CRT_SECURE_NO_WARNINGS
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- #define N 100
- int main()
- {
- int max, min, i = 0;
- char str[N];
- scanf("%s", str);
- min = str[0];
- max = str[0];
- while (str[i])
- {
- if (str[i] > max) max = str[i];
- if (str[i] < min) min = str[i];
- i++;
- }
- printf("max=%c\n",max);
- printf("min=%c\n", min);
- return 0;
- }
Объяснение кода листинга программы
- Подключаются необходимые библиотеки для работы с файлами и строками.
- Определяется константа N, которая задает максимальную длину строки в массиве.
- В функции main() инициализируются переменные:
- max и min устанавливаются равными первому символу строки.
- i устанавливается равным 0.
- С помощью функции scanf() вводится строка.
- В цикле while происходит проход по всем символам строки:
- Если текущий символ больше max, то max присваивается этот символ.
- Если текущий символ меньше min, то min присваивается этот символ.
- i увеличивается на 1.
- Выводятся значения max и min.
- Функция main() возвращает 0, что означает успешное завершение работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д