拨雪寻春640 2022-11-02 18:54 采纳率: 62.9%
浏览 35
已结题

为什么多个字符输入的时候错误了?

题目

img

#include<stdio.h>
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<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");
}
}

运行的时候感觉进不了循环,一个方向一个方向地输入时输出是正确的,但是多个字符输入方向不仅错误而且程序结束了
想知道是什么问题该怎么改?

  • 写回答

2条回答 默认 最新

  • 谢玄. 2022-11-02 19:06
    关注

    你没有归零,主要问题还是输入问题。改正后如下

    #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");
        }
    }
    

    img


    应该在这里归零

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月15日
  • 已采纳回答 11月7日
  • 创建了问题 11月2日

悬赏问题

  • ¥15 2024-五一综合模拟赛
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭