Измерить время выполнения программы - C (СИ)

Узнай цену своей работы

Формулировка задачи:

#include <stdio.h>
#include <math.h>
#include <time.h>
main ()
{ FILE *in;
  FILE *out;
  float x,y;
  clock_t start, end;
 
start = clock();
in=fopen("acc.txt","r");
out=fopen("out.txt", "w");
fscanf(in, "%f %f", &x, &y);
if ((x<=0||x>=1000000)||(y<=0||y>=1000000))
   {fprintf (out, "Nedopustimie znacheniya\n");
   end = clock();
   fprintf(out, "%.4lf\n", (end - start) / (CLOCKS_PER_SEC));
   }
else
   { 
   fprintf(out, "P vpisannogo kvadrata vpisannogo v okrujnost raven %.3f; S ravna %.3f; \nP opisanogo okolo okrujnosti kvadrata raven %.3f; S ravna %.3f\n", (sqrt(2)*4*x), (x*x*2), (8*x), (4*x*x)); 
   fprintf(out, "P orrujnosti vpisanoi v kvadrat raven %.3f; S ravna %.3f;\nP orrujnosti opisannoi okolo kvadrata ravna %.3f; S ravna %.3f\n", (3.14*y), (3.14*y*y/4), (3.14*y*sqrt(2)), (3.14*2*y*y));
   fprintf(out, "P ravnostoronnego treugolnika vpisannogo v okrujnost raven %.3f; S ravna %.3f;\nP ravnostoronnego treugolnika opisannogo okolo okrujnosi raven %.3f; S ravna %.3f\n", (0.87*x*6), (x*x*0.87*0.87*2*0.87), (6*sqrt(3)*x), (3*sqrt(3)*x*x));
   fprintf(out, "P okrujnosti vpisannoi v ravnostoronnii treugolnik %.3f; S ravna %.3f;\nP okrujnosti opisannoi okolo ravnostoronnego treugolnika %.3f; S ravna %.3f;\n",   (y*3.14*sqrt(3)/3.) ,(3.14*y*y/12),(2*sqrt(3)/3*3.14*y), (3.14*y/3));
   end = clock();
   printf("%lf\n",(end - start) / (CLOCKS_PER_SEC));
   }
}
Программа считывает два числа из текстового файла, проводит расчеты и выводит результат и время выполнения в другой текстовый файл, только вместо времени выполнения программы выводится одно из чисел полученных в предыдущих расчетах. Помогите пожалуйста разобраться, что не так?

Решение задачи: «Измерить время выполнения программы»

textual
Листинг программы
else
   { 
   ...
   end = clock();
   printf("%lf\n",(end - start) / (CLOCKS_PER_SEC));
   }

Объяснение кода листинга программы

  1. start - это переменная типа clock_t, которая используется для хранения времени начала выполнения программы.
  2. end - это также переменная типа clock_t, которая используется для хранения времени окончания выполнения программы.
  3. CLOCKS_PER_SEC - это константа, которая содержит количество тиков в секунду, используемых для измерения времени выполнения программы.
  4. printf - это функция, которая используется для вывода результата измерения времени выполнения программы на экран.
  5. %lf - это спецификатор формата, который используется в функции printf для вывода значения с плавающей точкой.
  6. (end - start) / (CLOCKS_PER_SEC) - это выражение, которое вычисляет время выполнения программы, вычитая время начала выполнения из времени окончания выполнения и деля на количество тиков в секунду.
  7. ... - это место, где могут быть другие действия или операции, выполняемые в программе, но которые не видны в данном коде.
  8. \n - это символ новой строки, который используется для перехода на новую строку при выводе результатов на экран.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.333 из 5
Похожие ответы