Как написать программу для проверки, соответствует ли ввод стандартному значению

#c

#c

Вопрос:

Я пытаюсь написать программу, которая должна проверять входы резисторов, чтобы увидеть, являются ли они стандартными значениями. Я зашел так далеко, но я очень смущен. Любые рекомендации помогут. Основная программа принимает значения от 1-1000 в качестве резисторных входов. Затем эти входные данные необходимо сравнить со списком стандартных значений, {10, 12, 15, 18, 22, 27, 33, 39, 47, 56, 68, 82}. Любое кратное этим значениям считается стандартным, например, 8.2, 82, 820.

 void checkstdval (float ra, float rb)
{

float stdv[12] = {10, 12, 15, 18, 22, 27, 33, 39, 47, 56, 68, 82};
while(1)
{

    while (ra <10)
    ra *= 10;
    
    while (ra <= 100)
    ra /= 10;
        if ((ra - stdv) < 0.01)
            break;
        else
        {
        
            printf("%.2f is not a standard resistor valuen", ra);
            break;
        }
}

while(1)
{

    while (rb <10)
    rb *= 10;
    while (rb <= 100)
    rb /= 10;
        if ((rb - stdv) < 0.01)
            break;
        else
            {
            
            printf("%.2f is not a standard resistor valuen", rb);
            break;
            
            }
}       
  

Комментарии:

1. Стандартные значения резисторов находятся в моем массиве ……..stdv[12] = {10, 12, 15, 18, 22, 27, 33, 39, 47, 56, 68, 82}; Я не могу запустить программу в том виде, в каком она написана » .недопустимые операнды в двоичном формате»

2. В основной программе можно ввести любое число от 1 до 1000, поэтому, допустим, введено 1,,, его нужно умножить на 10, а затем сравнить с массивом, поскольку оно может быть любым кратным этим стандартным значениям (например, 1.2, 12, 120), все они могут быть входными

3. Он указывает на if ((ra — stdv) < 0.01)

4. Есть идеи, как этого избежать? Мой профессор сказал нам сделать это так

5. Есть несколько проблем, но наиболее очевидной является ваше сравнение здесь: if ((ra - stdv) < 0.01) . stdv — это массив, поэтому вам нужно сравнить со значением в массиве. Итак, что-то вроде этого: if ((ra - stdv[i]) < 0.01) , где i — целое число, начинающееся с 0 и увеличивающееся каждый раз в цикле. Затем необходимо изменить тест else, чтобы проверить, находится ли i он в конце массива stdv.