ddddddd3 2021-11-12 18:34 采纳率: 100%
浏览 55
已结题

C语言问题 模拟一个点在二维坐标系上的运动

第一行输入初始坐标两个整数x,y
第二行操作个数一个整数n
接下来n行每行输入两个整数a b
a表示运动方向,b表示运动的长度
运动方向的表示:
0:y轴正方向
1:x轴正方向
2:y轴负方向
3:x轴负方向

问题:纳闷为什么我的代码输出结果不对,我感觉逻辑很正确


#include<stdio.h>

int main()
{
    int x,y;
    int n;
    int a,b;
    int i; 
    scanf("%d %d\n",&x,&y);
    scanf("%d",&n);
    //printf("%d %d\n\n",x,y);
    for(i=1;i<n;i++)
    {
        scanf("%d %d\n",&a,&b);
        switch(a)
        {
            case 0:       //y轴正方向 
                y=y+b;
            case 1:       //x轴正方向
                x=x+b;
            case 2:       //y轴负方向
                y=y-b;
            case 3:       //x轴负方向 
                x=x-b;
                printf("%d\n\n",x);
                printf("%d\n\n",y);
                //printf("%d %d",a,b);
        }
    }
printf("%d %d",x,y);
return 0;
}
  • 写回答

2条回答 默认 最新

  • qza2468 2021-11-12 18:39
    关注

    把第十行第15行中的\n去掉

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

报告相同问题?

问题事件

  • 系统已结题 11月21日
  • 已采纳回答 11月13日
  • 创建了问题 11月12日