c语言模拟遥控小车,朋友给的竞赛题目
#include "stdio.h" struct point{ int x; int y; }; struct control{ int t;//时间 char w;//方向 }; int main(){ struct point kaiche(int n,struct control opion[]); while(1){ int n; scanf("%d",&n); if(n==0)break; int i; struct control opion[n]; struct point point={0,0 }; for(i=0;i<n;i++){ int d;char c; //d=30;c='R'; scanf("%d %c",&d,&c); opion[i].t = d; opion[i].w = c; } point = kaiche(n,opion); printf("%d %d\n",point.x,point.y); } return 0; } struct point kaiche(int n,struct control opion[]){ struct point n_point={0,0}; //小车开始跑 int nowcon=1;//当前方向 0=>x 1=>y int zf = 1;//正负方向 int time=0;//时间 int lasttime=0;//上个状态的时间 int v=1;//速度 int isa=0;//1=>按下 是否按下了A int i; for(i=0;i<n;i++){ int t = opion[i].t; time = t; if(nowcon==1){ //向y跑 n_point.y +=zf*(t-lasttime)*v; }else{ //向x跑 n_point.x +=zf*(t-lasttime)*v; } lasttime = t; int w = opion[i].w;//方向 if(w=='U'){nowcon=1;zf = 1;} if(w=='D'){nowcon=1;zf = -1;} if(w=='L'){nowcon=0;zf = -1;} if(w=='R'){nowcon=0;zf = 1;} if(w=='A'){nowcon=nowcon;zf = zf; if(isa==0){ isa=1; v=2; }else{ isa=0; v=1; }} if(n_point.y<0)n_point.y=0; if(n_point.x<0)n_point.x=0; } if(time<50){ if(nowcon==1){ //向y跑 n_point.y +=zf*(50-time)*v; }else{ //向x跑 n_point.x +=zf*(50-time)*v; } if(n_point.y<0)n_point.y=0; if(n_point.x<0)n_point.x=0; } return n_point; //小车结束跑 }
转自 小草窝博客 。
版权声明:《 c语言模拟遥控小车 》为admin原创文章,转载请注明出处!
最后编辑:2016-11-28 16:11:43