杭电oj做题时出现超出时间限制..上代码..求教育!
#include
#include
int main()
{
int a[50][4]={0};
int i=0,k;
double s=0.0;
while(scanf("%d %d %d %d",&a[i][0],&a[i][1],&a[i][2],&a[i][3])!=EOF)
++i;
for(k=0;k
{s=(a[k][0]-a[k][2])*(a[k][0]-a[k][2])+(a[k][1]-a[k][3])*(a[k][1]-a[k][4]);
printf("%0.2f\n",sqrt(s));
}
return 0;
}
math.h
------解决方案--------------------
它没告诉你数据共有多少组。。你怎么知道是50?试下这个
#include
#include
int main()
{
int a[4]={0};
int i=0;
double s=0.0;
while(scanf("%d %d %d %d",&a[0],&a[1],&a[2],&a[3])!=EOF)
{
s=(a[0]-a[2])*(a[0]-a[2])+(a[1]-a[k][3])*(a[1]-a[4]);
printf("%0.2f\n",sqrt(s));
}
return 0;
}
------解决方案--------------------
昏。。
输入数据有多组,每组占一行,由4个实数组成,分别表示x1,y1,x2,y2,数据之间用空格隔开。
把int a[4]改成double a[4],scanf改成%lf
------解决方案--------------------
int nNum = 0;
printf("请输入组数:");
scanf("%d" ,&nNum);
if (nNum > 0)
{
double *pData = (double*)malloc (4*nNum*sizeof(double));
for (int i = 0; i
{
printf("请输入第%d组数据:" ,i/4+1);
scanf("%lf %lf %lf %lf" ,&pData[i] ,&pData[i+1] ,&pData[i+2] ,&pData[i+3] );
}
for (int i = 0; i
{
printf("%f\n" ,sqrt(pow(pData[i+2] - pData[i] ,2) + pow(pData[i+3] - pData[i+1] ,2)));
}
free (pData);
}