поиск наименьшего неотрицательного числа

В строчке с continue преподаватель сказал не рационально, я новичок не очень понимаю. Спросил, что нужно исправить, она сказала не писать дурь. Как нужно сделать правильно?

#include <stdio.h> 
#include <conio.h>
int main(void)
{
    int i=0;
    float min,a;
    printf("Enter 15 numbers\n");
    if (scanf("%f", &a) != 1) { printf("Mistake. You entered a letter"); }
    if (scanf("%f",&min) !=1)
        {
        printf("Mistake. You entered a letter");
        }
     i++;
     for (i=0; min < 0 && i < 15; i++) scanf("%f", &min);
    for (i=0;i<15;i++) 
    {
        scanf("%f",&a);
    
        if (a < 0)
        {
        continue;
        }
         else if (a < min)
         {
        min = a;
         }
    }
        if (min<0)
        {
        printf("There is no right answer");
        }
        else if (min>=0)
        {
        printf("Answer %f",min);
    }
    _getch();
   return 0;

}


Ответы (1 шт):

Автор решения: Zhihar

я новичок не очень понимаю.

составьте тогда алгоритм в виде текстовых инструкций

  1. наименьшее число = -1 - это нужно чтобы в конце алгоритма понять, а были ли в последовательности вообще неотрицательные числа

  2. пройти по всем элементам последовательности

  3. если текущий элемент положительный И текущий элемент меньше минимального числа ИЛИ минимальное число равно -1 - присвоить минимальному числу значение текущего элемента

ВСЕ

возможна сложность в понимании этапа 3)

когда текущий элемент является минимальным из всех рассмотренных ранее

  1. ранее вообще не рассматривались элементы - это как раз случай, когда минимальное значение равно -1 (тому, что установили на этапе 1)

  2. если текущий элемент неотрицательный (потому что только такие мы и ищем) и он меньше минимального значения

→ Ссылка