迷茫小玄森 2021-12-04 14:47 采纳率: 0%
浏览 26
已结题

C语言:自由选择东南西北四个方向走一段距离,走好几次后判断此时距离原点的距离

求!
就是先输入你走的次数,再输入你每次走的方向和距离
具体输入如下
2
E 6
N 4
实现代码过程中发现不会交替给两个数组赋值,就是如何让输入的E给第一个数组,输入的6给第二个数组
大致思路是想分为南北和东西两个部分,计算南北方向总共移动矢量和,计算东西方向总共移动的矢量和,然后用勾股定理求距离
具体错误代码如下(编译没有问题,运行起来后发现a数组一直是空的,不清楚什么原因

# include <stdio.h>
# include <math.h>

int main(void)
{
    char a[100];
    double b[100];
    double d, x, y;
    int i=0, n;
    
    scanf("%d", &n);   //走了几次 
char p,c[100];
    while((p=getchar()) == '\n')
        continue;
    while((a[i]=getchar()) != '\n'&&(scanf("%lf",&b[i])) != '\n')
    {
        while((c[i]=getchar()) == '\n')
            continue;
            i++;
        if((i+1) == n)
            break; 
    }

    i=0;
    while(i<n)
    {
        if(a[i] = 'E')
            x += b[i];
        if(a[i] = 'W')
            x -= b[i];
        if(a[i] = 'N')
            y += b[i];
        if(a[i] = 'S')
            y -= b[i];
        i++;
    }
    d = sqrt((x*x) + (y*y));
    printf("%.2f", d);
    
    
    return 0; 
}

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 12月12日
    • 创建了问题 12月4日