用C语言写一个计时器(支持多次计时,类似跑步可以记录多个参赛选手的用时):用户操作(计时开始)计时便开始直到用户操作(计时停止或计时完成),显示出这一段时间;用户若操作计时完成则只显示一段时间;用户若操作计时停止后台还应继续计时直到用户操作计时完成,显示出两段时间值;
时间: 2024-03-24 16:39:52 浏览: 153
计时器,C语言
4星 · 用户满意度95%
好的,可以使用C语言的time.h头文件中的time()函数来实现计时器功能。下面是一个简单的示例代码:
```
#include <stdio.h>
#include <time.h>
void displayTime(double duration);
int main() {
int numTimers;
printf("请输入需要计时的次数:");
scanf("%d", &numTimers);
double startTime[numTimers], endTime[numTimers];
int completed[numTimers];
// 初始化
for (int i = 0; i < numTimers; i++) {
startTime[i] = 0;
endTime[i] = 0;
completed[i] = 0;
}
int option, index;
do {
printf("\n1. 开始计时\n2. 停止计时\n3. 完成计时\n4. 退出程序\n");
printf("请选择操作:");
scanf("%d", &option);
switch (option) {
case 1:
printf("请输入计时器编号:");
scanf("%d", &index);
if (index >= 0 && index < numTimers) {
startTime[index] = time(NULL);
printf("计时器 %d 开始计时\n", index);
} else {
printf("计时器编号无效\n");
}
break;
case 2:
printf("请输入计时器编号:");
scanf("%d", &index);
if (index >= 0 && index < numTimers && startTime[index] != 0 && !completed[index]) {
endTime[index] = time(NULL);
printf("计时器 %d 停止计时\n", index);
displayTime(endTime[index] - startTime[index]);
} else {
printf("计时器编号无效或计时器未开始计时或已完成计时\n");
}
break;
case 3:
printf("请输入计时器编号:");
scanf("%d", &index);
if (index >= 0 && index < numTimers && startTime[index] != 0 && !completed[index]) {
endTime[index] = time(NULL);
completed[index] = 1;
printf("计时器 %d 完成计时\n", index);
displayTime(endTime[index] - startTime[index]);
} else {
printf("计时器编号无效或计时器未开始计时或已完成计时\n");
}
break;
case 4:
printf("程序退出\n");
break;
default:
printf("无效的操作\n");
break;
}
} while (option != 4);
return 0;
}
void displayTime(double duration) {
int hours = duration / 3600;
int minutes = (duration - hours * 3600) / 60;
int seconds = duration - hours * 3600 - minutes * 60;
printf("用时:%02d:%02d:%02d\n", hours, minutes, seconds);
}
```
这个程序支持多次计时,可以根据需要输入需要计时的次数,然后依次输入计时器编号进行操作。用户可以选择开始计时、停止计时或者完成计时。如果选择停止计时,则会显示计时器从开始计时到停止计时所用的时间;如果选择完成计时,则会显示计时器从开始计时到完成计时所用的时间。如果用户选择停止计时后没有选择完成计时,则后台仍然会继续计时,直到用户选择完成计时。
阅读全文