Программа неправильно находит min и max в строке - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Помогите найти ошибку
Листинг программы
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4. int main()
  5. {
  6. int a, b, c, max, i, min;
  7. scanf("%d", &a);
  8. char str[a];
  9. scanf("%s", str);
  10. for (i=0; i<a; i++);
  11. {
  12. if ((str[i-1]<str[i]) && (str[i]>str[i+1]))
  13. {
  14. max=str[i];
  15. }
  16. if ((str[i-1]>str[i]) && (str[i]<str[i+1]))
  17. {
  18. min=str[i];
  19. }
  20. }
  21. for (i=0; i<a; i++);
  22. {
  23. if ((str[i-1]>max) && (str[i+1]<max))
  24. {
  25. a = str[i];
  26. printf("%d", a);
  27. }
  28. if ((str[i-1]<min) && (str[i+1]>min))
  29. {
  30. b = str[i];
  31. printf("%d", b);
  32. }
  33. }
  34. return 0;
  35. }
Он неправильно находит min и max в строке

Решение задачи: «Программа неправильно находит min и max в строке»

textual
Листинг программы
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <stdio.h>
  3. #include <string.h>
  4. #include <stdlib.h>
  5.  
  6. #define N 100
  7.  
  8. int main()
  9. {
  10.     int  max, min, i = 0;
  11.     char str[N];
  12.     scanf("%s", str);
  13.     min = str[0];
  14.     max = str[0];
  15.     while (str[i])
  16.     {
  17.         if (str[i] > max) max = str[i];
  18.         if (str[i] < min) min = str[i];
  19.         i++;
  20.     }
  21.  
  22.     printf("max=%c\n",max);
  23.     printf("min=%c\n", min);
  24.  
  25.     return 0;
  26. }

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

  1. Подключаются необходимые библиотеки для работы с файлами и строками.
  2. Определяется константа N, которая задает максимальную длину строки в массиве.
  3. В функции main() инициализируются переменные:
    • max и min устанавливаются равными первому символу строки.
    • i устанавливается равным 0.
  4. С помощью функции scanf() вводится строка.
  5. В цикле while происходит проход по всем символам строки:
    • Если текущий символ больше max, то max присваивается этот символ.
    • Если текущий символ меньше min, то min присваивается этот символ.
    • i увеличивается на 1.
  6. Выводятся значения max и min.
  7. Функция main() возвращает 0, что означает успешное завершение работы программы.

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


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

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

11   голосов , оценка 4.091 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы