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

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

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

Помогите найти ошибку
#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 в строке

Решение задачи: «Программа неправильно находит 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;
}

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

  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
Похожие ответы