Ваша проблема, вероятно, связана с интегральным делением.Вам необходимо привести один из операндов деления к числу с плавающей / двойной, чтобы избежать усечения десятичных значений менее секунды.
clock_t start = clock();
// do stuff
// Can cast either operand for the division result to a double.
// I chose the right-hand operand, CLOCKS_PER_SEC.
double time_passed = clock() / static_cast<double>(CLOCKS_PER_SEC);
[Edit] Как указано, clock () измеряет время процессора (тактовые тикициклы) и не подходит хорошо подходит для испытаний настенного таймера.Если вам нужно портативное решение для этого, @see Boost.Timer как возможное решение