最短路径有关问题,求告知!

最短路径问题,求告知!!!
如下的最短路径问题,求告知我的代码那里有误:
Description
Fat-brother是一个认真文静的好孩子,他平时闲着无聊敲代码累的时候喜欢观察蚂蚁,他常常被蚂蚁坚持不懈的精神所感动,今天他突发奇想,拿出了一个长方体,他想知道蚂蚁从长方体的一个角A出发,沿着长方体的表面爬,怕到对角G的最短距离是多少,路线可以如图所示:

请帮助Fat-brother算算从A到G最短应该要爬多长?

Input
给你一个T(T<50),表示有T个长方体,每个长方体包含三个浮点数W,L,H,分别表示长宽高(长可能比宽短)

Output
根据每个长方体,计算出A到G的最短距离L,L精确到小数点后2位数。
格式为:Case %d: %.2lf\n

Samle input

10 10 10
1 1 1
Sample output
Case 1: 22.36
Case 2: 2.24
#include<stdio.h>
#include<math.h>
int main()
{
int i=0,j,t,q;
double s[3],path[50];
scanf("%d",&t);
while(i<t&&t<50)
{
for(j=0;j<3;j++)
{scanf("%lf",&s[j]);}
for(j=0;j<3;j++)
{
if(s[0]<s[j])
{
q=s[0];
s[0]=s[j];
s[j]=q;
}
}
path[i]=sqrt(s[0]*s[0]+s[1]*s[1]+s[2]*s[2]+2*s[1]*s[2]);
i++;
}
for(j=0;j<t;j++)
{printf("Case %d: %.2lf\n",j+1,path[j]);}
return 0;
}

------解决方案--------------------
看不到图
------解决方案--------------------
看不到图的说。
------解决方案--------------------
好像没什么错误吧,运行结果和预期的结果一致啊
------解决方案--------------------
完全一样的结果,还有错吗