Ошибка в функции bool с циклом for
Я не уверен, почему я получаю эту ошибку. Я проверил скобки и скобки. Петля не должна продолжаться вечно.
Error: helpers.c:43:1: error: control may reach end of non-void function [-Werror,-Wreturn-type] } ^
PS: В моем случае я должен использовать Werror.
Спасибо
Что я уже пробовал:
bool search(int value, int values[], int n) { if ( n < 0) { return false; } for (int a = 0; a < n; a++) { if ( values[a] == value) { return true; break; } else { if ( a == n) { return false; } } } }
[no name]
Что будет возвращать ваша функция, если n = 0?
Member 12919791
Да, я этого не помню.
Теперь я изменил код в начале, чтобы рассмотреть if (n <= 0).
И все же происходит та же ошибка.
Большое спасибо,
cvogt61457
Компилятор умен, но есть ситуации, которые могут обмануть его.
Ваш код выглядит так, как будто он может выйти без возврата - следовательно, у вас есть предупреждение.
Цикл может фактически завершиться и выйти вместе с
если (a == n)
но компилятор не может этого понять.
Решение Ричарда Маккатчана выглядит красиво и легко читается.
Примечание:
Ясность очень ценится при написании кода. Техническое обслуживание намного проще, и другие могут получить представление о том, как
то, что вы хотите сделать, гораздо проще.
Поцелуй-Держи это просто глупо