用C语言写一个计时器(支持多次计时,类似跑步可以记录多个参赛选手的用时):用户操作(计时开始)计时便开始直到用户操作(计时停止或计时完成),显示出这一段时间;用户若操作计时完成则只显示一段时间;用户若操作计时停止后台还应继续计时直到用户操作计时完成,显示出两段时间值;
时间: 2024-03-24 16:40:00 浏览: 14
好的,以下是一个简单的基于C语言的计时器实现代码,支持多次计时:
```c
#include <stdio.h>
#include <time.h>
#define MAX_RECORDS 10 // 最大记录数
// 记录结构体
struct record {
int id; // 记录ID
int is_running; // 是否在计时中
time_t start_time; // 开始时间
time_t end_time; // 结束时间
};
int main() {
struct record records[MAX_RECORDS] = {0};
int record_count = 0;
int i;
while (1) {
int action;
int id;
printf("请选择操作:\n");
printf("1. 开始计时\n");
printf("2. 停止计时\n");
printf("3. 完成计时\n");
printf("4. 查看记录\n");
printf("5. 退出程序\n");
scanf("%d", &action);
switch (action) {
case 1: // 开始计时
if (record_count >= MAX_RECORDS) {
printf("最多只能记录%d条数据!\n", MAX_RECORDS);
break;
}
// 创建新的记录
records[record_count].id = record_count + 1;
records[record_count].is_running = 1;
time(&records[record_count].start_time);
printf("开始计时,记录ID:%d\n", records[record_count].id);
record_count++;
break;
case 2: // 停止计时
printf("请输入要停止的记录ID:");
scanf("%d", &id);
// 查找记录
for (i = 0; i < record_count; i++) {
if (records[i].id == id && records[i].is_running) {
// 停止计时
records[i].is_running = 0;
time(&records[i].end_time);
printf("已停止计时,记录ID:%d,用时:%ld秒\n", records[i].id, records[i].end_time - records[i].start_time);
break;
}
}
if (i == record_count) {
printf("未找到该记录或该记录未在计时中!\n");
}
break;
case 3: // 完成计时
printf("请输入要完成的记录ID:");
scanf("%d", &id);
// 查找记录
for (i = 0; i < record_count; i++) {
if (records[i].id == id && records[i].is_running) {
// 停止计时
records[i].is_running = 0;
time(&records[i].end_time);
printf("已完成计时,记录ID:%d,用时:%ld秒\n", records[i].id, records[i].end_time - records[i].start_time);
break;
}
}
if (i == record_count) {
printf("未找到该记录或该记录未在计时中!\n");
}
break;
case 4: // 查看记录
for (i = 0; i < record_count; i++) {
printf("记录ID:%d,用时:%ld秒\n", records[i].id, records[i].is_running ? time(NULL) - records[i].start_time : records[i].end_time - records[i].start_time);
}
break;
case 5: // 退出程序
return 0;
default:
printf("无效操作!\n");
break;
}
}
}
```
这个计时器可以记录多次计时,每次开始计时时会创建一个新的记录,记录ID会自动递增。用户可以选择停止计时或完成计时,停止计时会记录当前用时并显示,完成计时会记录当前用时并结束计时。用户可以查看所有记录的用时。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)