michael adejoh Ответов: 2

Функции C, чтобы отобразить максимальное


В настоящее время я пишу программу на языке Си, которая предлагает пользователю ввести пять городов и температуры этих городов в течение пяти лет, а также отобразить максимум заданных температур. Итак, вот функция, которую я придумал для отображения максимальной температуры при вызове;

<pre> int max_temp(float temps_arr[])        
    {
        int max = 0;
        for(int k = 0;k<=4;k++)
        {
        max = temps_arr[0];
            if(max>temps_arr[k])
            { 
            max = temps_arr[k];
            printf("The maximum Temperature for city %d is %d\n", k+1, max);
            }    
        }
    }




А также как я интегрировал его в свою программу;
for(int i = 0;i<=4;i++)
    {
        printf("Enter city %d\n", i+1);
        scanf("%s",&cities[i]);

        for(int j = 0;j<=4;j++)
        {
            printf("Enter temperature %d\n", j+1);
            scanf("%d", &temps[j]);
            max_temp(temps);
        }
    }

    return 0;

Я не получаю желаемого результата, поэтому любой вклад ценится!

Что я уже пробовал:

повторяя цикл for снова и снова.

KarstenK

Оба решения верны, но я склоняюсь ко второму: если бы вы использовали отладчик, вы бы не спрашивали :-O

2 Ответов

Рейтинг:
2

OriginalGriff

Проблема в том, что у вас есть две отдельные проблемы.
Во-первых, вы вызвали свою функцию "print max" в неправильном месте: вы хотите, чтобы она была вызвана после завершения цикла загрузки температур, или вы вычисляете максимум, включая данные, которые вы еще не ввели!

Другая заключается в том, что вы сбрасываете текущее максимальное значение каждый раз, когда обходите петлю, чтобы найти самую большую температуру - ее нужно сбросить один раз перед запуском петли, а не внутри нее.


Рейтинг:
2

Patrice T

Цитата:
Я не получаю желаемого результата, поэтому любой вклад ценится!

Используйте отладчик, чтобы увидеть, как вы получаете этот результат, видя, что он неправильный, вы должны привести вас к необходимым исправлениям.

Существует инструмент, который позволяет вам видеть, что делает ваш код, его имя отладчик Это также отличный инструмент обучения, потому что он показывает вам реальность, и вы можете увидеть, какие ожидания соответствуют реальности.
Когда вы не понимаете, что делает ваш код или почему он делает то, что он делает, ответ таков: отладчик.
Используйте отладчик, чтобы увидеть, что делает ваш код. Просто установите точку останова и посмотрите, как работает ваш код, отладчик позволит вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения.

Отладчик - Википедия, свободная энциклопедия[^]

Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]
Базовая отладка с помощью Visual Studio 2010 - YouTube[^]
Отладчик здесь, чтобы показать вам, что делает ваш код, и ваша задача-сравнить с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.