写一个起跑停程序c语言
时间: 2023-05-11 21:05:06 浏览: 93
以下是一个简单的起跑停程序的 C 语言代码:
#include <stdio.h>
int main() {
char input;
printf("按下 's' 开始跑步,按下 'q' 停止跑步\n");
while (1) {
input = getchar();
if (input == 's') {
printf("开始跑步\n");
} else if (input == 'q') {
printf("停止跑步\n");
break;
} else {
printf("无效的输入,请重新输入\n");
}
}
return 0;
}
这个程序会提示用户按下 's' 开始跑步,按下 'q' 停止跑步。当用户按下 's' 时,程序会输出 "开始跑步",当用户按下 'q' 时,程序会输出 "停止跑步" 并结束程序。如果用户输入了其它字符,程序会输出 "无效的输入,请重新输入" 并等待用户重新输入。
相关问题
起跑停可以使用置位复位吗
起跑停通常使用的是触发器或者计数器来实现。在某些场合下,可以使用置位和复位信号来控制起跑停的运行。置位信号可以将触发器或计数器的输出状态置为 1,从而启动起跑停的运行;复位信号可以将触发器或计数器的输出状态复位为 0,从而停止起跑停的运行。但是使用置位和复位信号来控制起跑停需要考虑时序和信号的稳定性等问题,需要谨慎设计。
使用java多线程编程一个龟兔赛跑的程序
以下是使用Java多线程编写龟兔赛跑程序的示例代码:
```java
public class Race {
public static void main(String[] args) {
// 创建两只动物
Animal rabbit = new Animal("兔子", 10);
Animal tortoise = new Animal("乌龟", 5);
// 启动两只动物的线程
rabbit.start();
tortoise.start();
// 等待两只动物的线程执行完毕
try {
rabbit.join();
tortoise.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
// 判断比赛结果
if (rabbit.getPosition() >= 100 && tortoise.getPosition() >= 100) {
System.out.println("平局!");
} else if (rabbit.getPosition() >= 100) {
System.out.println("兔子获胜!");
} else {
System.out.println("乌龟获胜!");
}
}
}
class Animal extends Thread {
private String name; // 动物名称
private int speed; // 动物速度
private int position; // 动物位置
public Animal(String name, int speed) {
this.name = name;
this.speed = speed;
}
public int getPosition() {
return position;
}
public void run() {
System.out.println(name + "开始起跑!");
// 动物开始赛跑,每隔一段时间更新一次位置
while (position < 100) {
try {
Thread.sleep(100); // 线程休眠一段时间
} catch (InterruptedException e) {
e.printStackTrace();
}
int distance = speed; // 计算动物本次移动的距离
if ("兔子".equals(name)) { // 如果是兔子,则有一定几率停下来休息
if (Math.random() < 0.2) {
System.out.println("兔子在路边睡觉!");
distance = 0;
}
}
position += distance; // 更新动物位置
System.out.println(name + "已经跑了" + position + "米!");
}
System.out.println(name + "已经到达终点!");
}
}
```
在这个示例代码中,我们创建了一个 `Race` 类和一个 `Animal` 类。`Race` 类是程序的入口,它创建两只动物(兔子和乌龟),并启动它们的线程。`Animal` 类表示一个动物,它有三个属性:名称、速度和位置。它有一个 `run()` 方法,表示动物线程的执行逻辑。在 `run()` 方法中,动物每隔一段时间更新一次位置,当有一只动物到达终点时,比赛结束,并输出比赛结果。
需要注意的是,在 `Animal` 类的 `run()` 方法中,我们使用了 `Thread.sleep()` 方法来模拟动物赛跑过程中的时间间隔。我们还使用了 `Math.random()` 方法来模拟兔子在路边睡觉的概率。这些细节的处理可以使程序更加逼真和有趣。