题目
#include
int main{
int n,i,di=0,re=0,m;
char d[1001];
while (scanf_s("%d", &n) == 1&&n!=0)
{
scanf_s("%s", d,n);
for (m=0; m
{
if (d[m] == 'L')
di = di + 1;
else if (d[m] == 'R')
di = di - 1;
}
re = di % 4;
if (re == 0)
printf("N");
else if (re == 1 || re == -3)
printf("W");
else if (re == 2 || re == -2)
printf("S");
else
printf("E");
printf("\n");
}
}
运行的时候感觉进不了循环,一个方向一个方向地输入时输出是正确的,但是多个字符输入方向不仅错误而且程序结束了
想知道是什么问题该怎么改?
你没有归零,主要问题还是输入问题。改正后如下
#include<stdio.h>
int main() {
int n, i, di = 0, re = 0, m;
char d[1001];
while (scanf_s("%d", &n) == 1 && n != 0) {
di = 0; // 这里也有
scanf_s("%s", d); // 这里有改动
for (m = 0; m < n; m++) {
if (d[m] == 'L')
di = di + 1;
else if (d[m] == 'R')
di = di - 1;
}
re = di % 4;
if (re == 0)
printf("N");
else if (re == 1 || re == -3)
printf("W");
else if (re == 2 || re == -2)
printf("S");
else
printf("E");
printf("\n");
}
}