当前位置:首页 » 编程语言 » c语言模拟电梯

c语言模拟电梯

发布时间: 2025-03-03 22:34:52

c语言一道编程题,关于电梯调度运行的。

这个问题主要还是一个物理题,相信都坐电梯,但没有仔细研究,它的运行过程就是一个需求:
1、按下X楼层,并记录按下的时间顺序;1.1、当前电梯不在此楼层;1.2、电梯在此楼层;
2、若电梯不在此楼层,先运行至此楼层开门,否则直接开门,消除请求信息;
3、电梯先加速,再匀速,再减速至X楼层;
4、如果去X楼层的途中,遇到有同向的楼层按下,则先停靠在该楼层,然后再进行步骤3;
5、运行至X楼层后,消除当前请求X楼层信息,如果有其他楼层已经按下,则转到最先按下的楼层的方向(中途有其他的请求,顺便带上),如果没有请求,则停止在X楼,等待!
6、两部电梯的话,主要考虑哪个有空闲,只要空闲就优先执行重复以上1~5步骤。
数据结构的话主要有:电梯当前所在楼层,目标楼层X,中途请求系列,是否已完成;
问题是属于比较复杂的那种,还是要自己多思考思考怎么写文档才是,越详细越好,想清楚了,实现应该是比较简单的!

⑵ c语言中break和continue的区别

break 语句很重要,用得非常多,初学者一定要掌握。continue 语句虽然没有 break 语句用得多,但也经常用到,而且不可或缺,需要用到 continue 的时候其他语句是无法替代的。

前面已经介绍过 break 语句,它不仅可以跳出“循环体”,还可以跳出 switch。但事实上,break 也只能用于这两种情况。break 语句不能用于循环语句和 switch 语句之外的任何其他语句中。

不管是 for 循环,还是 while 循环,或者是 do…while 循环,都可以用 break 跳出来,但是 break 只能跳出一层循环。当有多层循环嵌套的时候,break只能跳出“包裹”它的最里面的那一层循环,无法一次跳出所有循环。

同样,在多层 switch 嵌套的程序中,break 也只能跳出其所在的距离它最近的 switch。但多层 switch 嵌套实在是少见。

continue 的用法十分简单,其作用为结束本次循环,即跳过循环体中下面尚未执行的语句,然后进行下一次是否执行循环的判定。
continue和break的区别
continue 语句和 break 语句的区别是,continue 语句只结束本次循环,而不是终止整个循环。break 语句则是结束整个循环过程,不再判断执行循环的条件是否成立。而且,continue 只能在循环语句中使用,即只能在 for、while 和 do…while 中使用,除此之外 continue 不能在任何语句中使用。

所以,再次强调:continue 不能在 switch 中使用,除非 switch 在循环体中。此时 continue 表示的也是结束循环体的本次循环,跟 switch 也没有关系。

例如,下面为使用switch模拟电梯运行的代码:
# include <stdio.h>
int main(void)
{
int val; //variable的缩写, “变量”的意思
printf("请输入您想去的楼层:");
while (1)
{
scanf("%d", &val);
switch (val)
{
case 1:
printf("1层开!\n");
break; //跳出switch
case 2:
printf("2层开!\n");
break; //跳出switch
case 3:
printf("3层开!\n");
break; //跳出switch
default:
printf("该层不存在, 请重新输入:");
continue; //结束本次while循环
}
break; //跳出while
}
return 0;

⑶ 关于电梯的C语言应用题求解答

#include<stdio.h>
intmain()
{
intn;
while(~scanf("%d",&n)&&n)
{
intlast=0;
intcur;
intt=0;
while(n--)
{
scanf("%d",&cur);
if(cur>last)t+=cur-last;
elset+=last-cur;
last=cur;
}
printf("%.2lf ",t*5.9);
}
return0;
}

⑷ 【C语言编程题】电梯时间问题

#include <stdio.h>
using namespace std;

int i,n,x,ans,sum;

int main(){
while(1){
scanf("%d",&n);
if(n==0)
break;
sum=ans=0;
for(i=1;i<=n;i++){
scanf("%d",&x);
//printf("%d %d\n",sum,ans);
if(x>ans)
sum+=(x-ans)*6;
else
sum+=(ans-x)*4;
ans=x;
sum+=5;
//printf("%d %d\n",sum,ans);
}
printf("%d\n",sum);
}
return 0;
}
望采纳,谢谢

热点内容
mc服务器ip和端口在哪改 发布:2025-03-04 04:04:45 浏览:529
java通用版软件下载 发布:2025-03-04 04:04:05 浏览:915
linuxrootssh 发布:2025-03-04 03:44:59 浏览:839
如何获取保险配置 发布:2025-03-04 03:42:56 浏览:651
海虾号存放处密码门密码是多少 发布:2025-03-04 03:30:29 浏览:131
ss搭建脚本 发布:2025-03-04 03:22:35 浏览:480
阿里云服务器系统升级 发布:2025-03-04 02:53:39 浏览:743
大学生数据库 发布:2025-03-04 02:41:19 浏览:810
卖面膜脚本 发布:2025-03-04 02:39:02 浏览:572
安卓手机如何下载只狼 发布:2025-03-04 02:31:50 浏览:498