求大神看代码不知道错在哪

本题要求编写程序,计算两个二维平面向量的和向量。

输入格式:

输入在一行中按照“x1 y1 x2 y2”的格式给出两个二维平面向量V1=(x1, y1)和V2=(x2, y2)的分量。

输出格式:

在一行中按照“(x, y)”的格式输出和向量,坐标输出小数点后1位(注意不能输出-0.0)。

输入样例:
3.5 -2.7 -13.9 8.7
输出样例:
(-10.4, 6.0)
代码:#include
#include
int main( )
{
float x1,y1,x2,y2,v1,v2;
scanf("%f %f %f %f",&x1,&y1,&x2,&y2);
v1=x1+x2;
v2=y1+y2;//四舍五入
if((fabs(v1*10-floor(v1*10)))>=0.5)
{
v1=v1+0.1;
}
if((fabs(v2*10-floor(v2*10)))>=0.5)
{
v2=v2+0.1;
}
printf("(%.1f, %.1f)\n",v1,v2);
return 0;
}

代码没有问题啊,你遇到的问题是什么?

有一个用例过不了,不知道是哪错啦。

#include <stdio.h>
typedef struct Vector
{
    double x;
    double y;
}V;

V GetVector(double X,double Y)
{
    V v={0.0,0.0};
    v.x=X;
    v.y=Y;  
    return v;
}

void printVector(V v)
{
    if(v.x<0&&v.x>-0.05) v.x=0;//刚坐到这题,问题在这里~~~~~~~~~~~~~
    if(v.y<0&&v.y>-0.05) v.y=0;//题目说不能输出-0.0,我一开始也没注意,一直少2分
    printf("(%.1f, %.1f)\n",v.x,v.y);
}

V Add2Vector(const V v1,const V v2)
{
    V v={0.0,0.0};
    v.x=v1.x+v2.x;
    v.y=v1.y+v2.y;
    return v;
}

int main()
{
    double x1,y1,x2,y2;
    scanf("%lf %lf %lf %lf",&x1,&y1,&x2,&y2);
    V v1,v2,v3;
    v1=GetVector(x1,y1);
    v2=GetVector(x2,y2);
    v3=Add2Vector(v1,v2);
    printVector(v3);

    return 0;
}