2013-06-11 4 views
-5

Мне интересно, почему этот фрагмент кода работает неправильно. Rms - это значение, вычисленное некоторой обработкой, и составляет 0,000146, и я хочу видеть результат по мере прохождения теста, но я не получил тест. Что не так, предложения?Ошибка в следующем фрагменте кода

If(rms <0.001){ 
    return Test_PASSED 
    } 
    else{ 
    return Test_FAILED 
    } 

Test_PASSED и TEST_FAILED является перечисление определяется следующим образом:

//! Результаты Возможные испытания typedef enum

{

Test_PASSED = 0, //!< passed

Test_FAILED = -1 //!< failed

} Test_Result_e;

+4

Нам нужно увидеть больше кода. Мы даже не знаем тип rms. – Paulpro

+0

http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html –

+1

@BinayakaChakraborty Как это применимо здесь? –

ответ

1

Вы должны суффикс float константы с f. Я предполагаю, что ваша переменная rms имеет тип float. Потому что константа 0.001 будет неявно иметь точность double.

Если я прав, то следующее должно работать.

if(rms <0.001f){ 
    return TestPassed 
    } 
    else{ 
    return testFailed 
    } 
+0

нет, я его уже не пробовал. –

+1

@DX Я вижу, то, пожалуйста, напишите еще код ... в текущей форме сложно сказать ошибку ..... – pinkpanther

0

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

Другая возможная ошибка заключается в том, как они проходят проверку, например. путаница между == и =.

+0

'Test_PASSED' и' Test_FAILED' отличаются от 'TestPassed' и' testFailed'. Я думаю, вы должны опубликовать все соответствующие коды. – Stochastically

+0

см. Мое редактирование. Я упомянул об этом. –

+1

Я отредактировал свой ответ. Больше кода поможет. Кроме того, откуда вы знаете, что значение rms - это значение, которое вы говорите? – Stochastically

0

Если это написано в верхнем регистре i, это неверно. Заявления внутри блока if не завершены;

Код должен был

if (rms < 0.001) { 
    return TestPassed; 
} 
else { 
    return testFailed; 
} 

Тем не менее, это не ясно, что TestPassed и testFailed являются - вы скопировали неполный фрагмент кода. Возможно, вы пропустили написание одного из них.

Наконец, кажется, что самая большая проблема заключается в том, что вы изучаете программирование в целом с использованием C. Для этого существуют гораздо лучшие языки. Любой современный язык программирования на высоком уровне был бы лучше. Попробуйте, например, python или ruby.

+0

Я не учусь :) –

Смежные вопросы