| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
为什么第一个sample出的结果正确,第二个却错了为什么第一个sample出的结果正确,第二个却错了,附上程序请高手指点
#include"stdio.h"
#include"math.h"
#define M 10000
#define N 7
float lean(int a,int b,int c,int d)
{
float k;
if(a-b!=0)
k=(float)(c-d)/(a-b);
else
k=M;
return k;
}
int distant(int a,int b,int c,int d)
{
int dist;
dist=(a-b)*(a-b)+(c-d)*(c-d);
return dist;
}
main()
{
int x[N]={-2,8,5,1,4,2,9},y[N]={-1,9,7,1,8,0,8};
float k[N][N];
int d[N][N];
int i,j,m,n;
int flag=0; clrscr();
for(i=0;i<N;i++)
for(j=0;j<N;j++)
if(j!=i){
{
d[i][j]=distant(x[i],x[j],y[i],y[j]);
k[i][j]=lean(x[i],x[j],y[i],y[j]);
printf("%d\t",d[i][j]);
printf("%f\n",k[i][j]);
printf("%d,%d\n",i,j);
for(m=0;m<N;m++)
if(m!=i&&m!=j){
{
for(n=0;n<N;n++)
if(n!=m&&n!=i&&n!=j){
{
d[m][n]=distant(x[m],x[n],y[m],y[n]);
/* printf("%d\n",d[m][n]); */
if(d[m][n]==d[i][j])
{ k[m][n]=lean(x[m],x[n],y[m],y[n]);
/* printf("%f\n",k[m][n]);
printf("%d,%d,%d,%d\n",i,j,m,n);*/
if(k[m][n]==k[i][j])
{
k[m][i]=lean(x[m],x[i],y[m],y[i]);
k[m][j]=lean(x[m],x[j],y[m],y[j]);
k[n][i]=lean(x[n],x[i],y[n],y[i]);
k[n][j]=lean(x[n],x[j],y[n],y[j]);
if(k[m][i]==k[m][j]&&k[m][j]==k[n][i]&&k[n][i]==k[n][j]&&k[n][j]==k[m][i])
printf("The four points are in a line!\n");
else
flag++;
}
}
}
}}}}
}
printf("\n");
printf("%d\n",flag);
getchar();
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator