Здравствуйте, Pzz, Вы писали:
Можно я тоже вмешаюсь?
Pzz>Gorbatich wrote:
>> Давайте завершим наш спор. "Правильную" версию программы в студию!!!
Pzz>Ну вот, например:
int max_count(int * a, int size)
{
int count = 0;
if(size > 2)
{
for(int i = 0; i < size - 2; i++)
{
if(((a[i+1] - a[i]) > 0) && ((a[i+2] - a[i+1]) < 0))
count++
}
}
return count;
}
Будет работать неправильно. К сожалению, a[i+1] — a[i] > 0 не тождественно a[i] < a[i+1].
(То, что код не компилится, за ошибку не считаем — это компилятор отследит)
При прогоне теста:
{int a[3] = {-2147483648,20,-2147483648};
if (max_count(a, 3) != 1) printf ("Test of min element fail\n");
}
Локальный максимум не будет посчитан.
2Pzz
А как вы оцените такое решение:
http://forums.software-testing.ru/index.php?automodule=blog&blogid=11&view=showday&d=23&m=1&y=2006