Попытка сохранить время выполнения программы в массиве, но элементы массива всегда показывают одно и то же значение - PullRequest
0 голосов
/ 24 сентября 2019

Я рассчитываю время выполнения программы с разными входными данными, используя C. Я запускаю программу 100 раз и хочу найти среднее время выполнения.Чтобы найти среднее значение, я хочу сохранить каждое значение времени выполнения в массиве, однако сохраненные значения всегда показывают одно и то же число.

Я пытался изменить тип с плавающей запятой на long и double, но это не такработай.Я добавил оператор печати, чтобы показать значения, и они являются теми значениями, которые я хочу, только они меняются после вставки в массив.

// C programming
int main(){

clock_t t;
int n, m = 0;
int arr_time[100]; // also tried changing the array type from int to float
int repeat, repeat_times = 1000;

for(n=1;n<100;++n)
{
    t = clock();
    for (repeat=0;repeat<repeat_times; ++repeat)
    {
        some_function();
    }

    t = clock()-t;
    printf("%f", ((float)t)/CLOCKS_PER_SEC/repeat_times); // to check the values to be stored
    arr_time[m] = ((float)t)/CLOCKS_PER_SEC/repeat_times; // values stored are not the same as previous line though
    m+=1;
    printf("It took %f seconds to run some_function(%d)\n",
           ((float)t)/CLOCKS_PER_SEC/repeat_times,n);
}

int sum = 0;
for (n=1;n<100;++n)
{
    sum += arr_time[n];
}
for (n=0;n<10;n++)
{
    printf("(%f)\n", arr[n]); // checking which values are stored into the array
}

printf("(%f)\n", sum);
int average = ((float)sum)/99;
printf("The average time in seconds to run some_function is (%f)\n", average);

return 0;
}

Как я могу сохранить значение времени в массиве?

1 Ответ

0 голосов
/ 24 сентября 2019
//...
arr_time[m] = ((float)t)/CLOCKS_PER_SEC/repeat_times;
//you can store them here where arr[] is float    
arr[n] = arr_time[m]
//
for (n=0;n<10;n++)
{
// or use arr_time[] and not arr[] because you are not using arr[] in your program
printf("(%f)\n", arr_time[n]); // checking which values are stored into the array
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...