C语言 计时函数时间差总为零
解决时间 2021-01-25 19:17
- 提问者网友:姑娘长的好罪过
- 2021-01-24 19:13
#include
#include
void leave_car();
int main()
{
time_t t_start,t_end;
t_start=time(NULL);
leave_car();
return 0;
}
void leave_car()
{
int i,j;
time_t t_start,t_end;
printf("yse:");
scanf("%d",&i);
printf("%d\n",i);
t_end=time(NULL);
printf("time is %f s\n",difftime(t_end,t_start);
printf("yes:");
scanf("%d",&j);
printf("%d",j);
}
这是我写的简易情况,需要计时函数可以分成两个部分,一部分在主函数,一部分在分函数。但运行时时间总是为零,求解!!!
最佳答案
- 五星知识达人网友:痴妹与他
- 2021-01-24 20:20
把 time_t t_start,t_end; 改为全局量。去掉 2个函数里的声明time_t t_start,t_end;
#include
#include
time_t t_start,t_end; //global
void leave_car();
int main(){
t_start=time(NULL); // 开始时间
leave_car();
return 0;
}
void leave_car(){
int i,j;
//time_t t_start,t_end;
printf("yse:");
scanf("%d",&i);
printf("%d\n",i);
t_end=time(NULL); //结束时间
printf("time is %f s\n", difftime(t_end,t_start) ); // 加上小括号
printf("yes:");
scanf("%d",&j);
printf("%d",j);
}
全部回答
- 1楼网友:神鬼未生
- 2021-01-24 22:04
迎接柔和的光辉。厅丌有的
- 2楼网友:归鹤鸣
- 2021-01-24 21:12
C语言中变量是有作用域的,除非定义了全局变量,一般而言不同的函数体中的变量相互不可见。
因此,主函数中的t_start与leave_car()函数中的t_start并不是同一个变量!
修改如下:
1. 将主函数中的
time_t t_start,t_end;
t_start=time(NULL);
两个语句去掉,因为对整个程序而言没有实际的作用。
2. 在leave_car()中
printf("yes");
前添加
t_start=time(NULL);
3. 另外
printf("time is %f s\n",difftime(t_end,t_start);
少写了一个反括号
我要举报
大家都在看
推荐资讯