C语言 路痴 input 第一行:开始的朝向(用英语)和转向(90度)次数 第二行:0和1(0代表

C语言 路痴
input 第一行:开始的朝向(用英语)和转向(90度)次数
第二行:0和1(0代表左转,1右转)
output 最终朝向(英语)
算法或代码都行,急用。

void main()
{
char d[8];//初始方向
int times = 0;//转向(90度)次数
int x[100];//0和1(0代表左转,1右转)
int sd=0;//初始方向

scanf("%s %d",d,×);

if(strcmp(d,"east") == 0)
sd=0;
else if(strcmp(d,"north") == 0)
sd=90;
else if(strcmp(d,"west") == 0)
sd=180;
else if(strcmp(d,"south") == 0)
sd=270;
else{
printf("error");
exit(1);}

for(int i=0;i<times;i++)
{
scanf("%d",x+i);
if(x[i] == 0){
sd+=90;

}
else
{
sd-=90;
}
}
switch(sd % 360)
{
case 0:
printf("east");

break;

case 90:
printf("north");

break;
case 180:
printf("west");

break;
case 270:
printf("south");

break;
}

}追问

负数对正数取余运算结果是正的吗?

追答

这里没有负数

追问

1比0多时sd不是负的吗?

追答

负数对正数取余运算结果是正的

追问

好吧

温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜