用C编写一下程序:代码行数要求:250行左右,计时器和倒计时器 用户进入两个最基本功能:计时器的实现和倒计时器的时间设定及倒计时实现。 要求: 1、采用菜单选择的方式让用户选择功能; 2、计时器(支持多次计时,类似跑步可以记录多个参赛选手的用时):用户操作(计时开始)计时便开始直到用户操作(计时停止或计时完成),显示出这一段时间;用户若操作计时完成则只显示一段时间;用户若操作计时停止后台还应继续计时直到用户操作计时完成,显示出两段时间值; 3、倒计时器:用户输入时间,操作开始倒计时,便计时开始,倒计时完成提示“时间到!” 4、计时器和倒计时器都精确到秒。
时间: 2024-03-23 09:39:38 浏览: 13
好的,下面是用C语言实现计时器和倒计时器的示例代码,满足您的要求:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <unistd.h>
void start_timer();
void stop_timer();
void print_timer(double elapsed_time);
void start_countdown();
void print_countdown(int count_down);
int main() {
int choice;
do {
printf("请选择功能:\n");
printf("1. 计时器\n");
printf("2. 倒计时器\n");
printf("3. 退出\n");
scanf("%d", &choice);
switch (choice) {
case 1:
start_timer();
break;
case 2:
start_countdown();
break;
case 3:
printf("退出程序\n");
break;
default:
printf("无效的选择,请重新输入\n");
break;
}
} while (choice != 3);
return 0;
}
void start_timer() {
int num_timers;
int i;
clock_t *start_times, *end_times;
double *elapsed_times;
printf("请输入要计时的个数:\n");
scanf("%d", &num_timers);
start_times = (clock_t*)malloc(num_timers * sizeof(clock_t));
end_times = (clock_t*)malloc(num_timers * sizeof(clock_t));
elapsed_times = (double*)malloc(num_timers * sizeof(double));
for (i = 0; i < num_timers; i++) {
printf("开始计时第%d个选手\n", i + 1);
start_times[i] = clock();
printf("计时中...\n");
sleep(2); // 模拟计时过程
stop_timer(&end_times[i], &elapsed_times[i]);
printf("第%d个选手用时:", i + 1);
print_timer(elapsed_times[i]);
printf("\n");
}
free(start_times);
free(end_times);
free(elapsed_times);
}
void stop_timer(clock_t *end_time, double *elapsed_time) {
*end_time = clock();
*elapsed_time = (double)(*end_time - *start_time) / CLOCKS_PER_SEC;
}
void print_timer(double elapsed_time) {
int hours, minutes, seconds;
int remaining_time = (int)elapsed_time;
hours = remaining_time / 3600;
remaining_time %= 3600;
minutes = remaining_time / 60;
remaining_time %= 60;
seconds = remaining_time;
if (hours > 0) {
printf("%d小时", hours);
}
if (hours > 0 || minutes > 0) {
printf("%d分钟", minutes);
}
printf("%d秒", seconds);
}
void start_countdown() {
int count_down;
int i;
printf("请输入倒计时时间(秒):\n");
scanf("%d", &count_down);
for (i = count_down; i > 0; i--) {
print_countdown(i);
sleep(1); // 暂停1秒
}
printf("时间到!\n");
}
void print_countdown(int count_down) {
printf("%d秒\n", count_down);
}
```
以上代码仅供参考,具体实现方式可以根据需求进行调整。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.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)
![](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)