Время измерения моего массива случайных чисел для печати всегда показывает 0 секунд - PullRequest
0 голосов
/ 11 июня 2018

мой первый пост здесь.Просто интересно, почему мой секундомер всегда показывает 0 секунд или 0 миллисекунд, независимо от количества случайных чисел в моем массиве.Я очень ценю помощь.Вот мой код:

#include <iostream>
#include <cstdlib>
#include <time.h>
using namespace std;

double clock_start()
{
    clock_t start = clock();
    return start;
}

void random_number()
{
    int array[10000];
    srand(6);
    cout << "10k Random numbers: ";
    for (int i = 0; i < 10000; i++)
    {
        array[i] = rand() % 99 + 1;
        cout << array[i] << "\n";
    }
}

int main()
{
    setlocale(LC_ALL, "");
    //-------------------------//

    random_number();
    clock_t elapsed = (clock() - clock_start()) / (CLOCKS_PER_SEC / 1000);
    cout << "Stopwatch: " << elapsed << "ms" << " or " << elapsed * 1000 << "s" << endl;

    //-------------------------//
    system("pause > nul");
    return 0;
}

Ответы [ 2 ]

0 голосов
/ 11 июня 2018

Спасибо за помощь, ребята!Я поражен, насколько быстро это сообщество отвечает.Поэтому я удалил функцию clock_start ().И я добавил:

clock_t start = clock();

к моей основной функции.

0 голосов
/ 11 июня 2018

(clock() - clock_start()) будет оцениваться в мгновение ока.

Все, что clock_start() делает, это возвращает clock().(На самом деле, хороший оптимизирующий компилятор заменит clock_start() на clock()!)

Разница почти наверняка будет равна нулю.Вы хотели что-то вроде

clock_t start = clock();
random_number();
clock_t elapsed = (clock() - start) / (CLOCKS_PER_SEC / 1000);

вместо этого?

...