码迷,mamicode.com
首页 > 其他好文 > 详细

poj-1657 Distance on Chessboard

时间:2019-01-22 21:44:58      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:位置   inf   i++   距离   存储   ber   字符数组   std   int   

c语言解决

代码:
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int num,i;
    scanf("%d",&num);
    for(i=0;i<num;i++)
    {
        char begin[5],end[5];//用begin和end分别存储棋子的起止位置
        scanf("%s%s",begin,end);//begin 和 end 已经是地址
        int x,y;//用x和y分别存储起止位置之间x方向和y方向上的距离
        x = abs(begin[0]-end[0]);
        y = abs(begin[1]-end[1]);
        if(x==0&&y==0) printf("0 0 0 0\n");//起止位置相同,所有棋子都走0步
        else
        {
            int sum,number;
            sum = abs(x-y);
            number = x>y? x:y;
            //对于王来说
            printf("%d ",number);
            //对于后来说
            if(x==y||x==0||y==0)printf("1 ");
            else    printf("2 ");
            //对于车来说
            if(x==0||y==0)printf("1 ");
            else    printf("2 ");
            //对于象来说
            if(sum%2!=0)printf("Inf\n");
            else if(x==y)    printf("1\n");
            else printf("2\n");
        }
    }
}

遇到的问题:

如何存储字符:运用两个字符数组存储

scanf("%s%s",begin,end) 给两个字符数组赋值

poj-1657 Distance on Chessboard

标签:位置   inf   i++   距离   存储   ber   字符数组   std   int   

原文地址:https://www.cnblogs.com/gufana/p/10305891.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!