qimu9 2023-11-28 19:39 采纳率: 75%
浏览 6
已结题

oj提示部分通过,有两个样例不通过

oj提示10个样例有两个不通过,但是我看不到具体的样例是什么,求指点哪里有漏洞

img

#include<stdio.h>
#include<math.h>
double s(int x1, int y1, int x2, int y2 )
{
    double sum;
    int t,t1;
    t = x2 + y2 - x1 - y1;
    sum = 0;
    sum += sqrt(x2 * x2 * 2);//求出坐标值较大的点距离上一个y轴上的点的距离
    t1 = x2 + y2;
    while (t1 - 1 > x1 + y1)//加上斜率为-1的线的长度
    {
        sum += sqrt(2) * (t1 - 1);
        t1--;
    }
    while (t != 0)//加上另外一种斜线的长度
    {
        sum += sqrt((y2+x2)*(y2+x2) + (y2 + x2-1) * (y2 + x2-1));
        t--;
        y2--;
    }
    sum += sqrt(2)*y1;//加上坐标值较小的点距下一个x轴上的点的距离
    return sum;
}
int main()
{
    int x1, x2, y1, y2,n,x,y,a=0;
    scanf("%d", &n);
    double sum;
    while (a < n)
    {
        scanf("%d %d %d %d", &x1, &y1, &x2, &y2);
        if ((x1 + y1) > (x2 + y2))//将x2y2设为坐标值较大的点
        {
            x = x1;
            y = y1;
            x1 = x2;
            y1 = y2;
            x2 = x;
            y2 = y;
        }
        sum = s(x1, y1, x2, y2);
        printf("%.3f\n", sum);
        a++;
    }
    return 0;
}

  • 写回答

2条回答 默认 最新

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月26日
  • 修改了问题 11月28日
  • 修改了问题 11月28日
  • 创建了问题 11月28日