c语言实现模拟电梯,要求可以在终端输入楼层,移动过程中显示到第几层了,移动结束后选择下一个楼层,程序开始执行便不会借宿,除非输入exit
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 电梯结构体
typedef struct {
int current_floor;
} Elevator;
// 初始化电梯
void initializeElevator(Elevator *elevator) {
elevator->current_floor = 1; // 初始位置为第1层
}
// 移动电梯到目标楼层
void moveElevator(Elevator *elevator, int target_floor) {
if (target_floor > elevator->current_floor) {
printf("电梯上行中...\n");
for (int i = elevator->current_floor; i <= target_floor; ++i) {
printf("当前楼层:%d\n", i);
}
} else if (target_floor < elevator->current_floor) {
printf("电梯下行中...\n");
for (int i = elevator->current_floor; i >= target_floor; --i) {
printf("当前楼层:%d\n", i);
}
} else {
printf("电梯已经在目标楼层:%d\n", target_floor);
}
elevator->current_floor = target_floor; // 更新电梯当前楼层
}
int main() {
Elevator elevator;
initializeElevator(&elevator);
char input[10];
printf("电梯模拟程序。输入楼层编号,输入 'exit' 退出程序。\n");
while (1) {
printf("请输入目标楼层:");
fgets(input, sizeof(input), stdin);
// 去除换行符
input[strcspn(input, "\n")] = 0;
if (strcmp(input, "exit") == 0) {
printf("程序结束。\n");
break;
}
int target_floor = atoi(input);
if (target_floor <= 0) {
printf("请输入有效的楼层数字。\n");
} else {
moveElevator(&elevator, target_floor);
}
}
return 0;
}