Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

相当诡异

Posted by justfighting007 at 2009-08-01 19:26:56 on Problem 2254
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<stdlib.h>

#define PI 3.141592653589793
#define R 6378

typedef struct{ 
        char name[30]; 
        double x, y, z; 
}CITY;
CITY city[1000];
int ncity = 0;

int read(){
      double lon, lat;
      scanf("%s", city[ncity].name);
      if(strcmp(city[ncity].name, "#") == 0) 
          return 0;
      scanf("%lf %lf", &lat, &lon);
      lon *= PI / 180.0;
      lat *= PI / 180.0;
      city[ncity].x = sin(lon) * cos(lat);
      city[ncity].y = cos(lon) * cos(lat);
      city[ncity].z = sin(lat);
      ncity++;
      return 1;
}

double distance(int i, int j){
      double al = acos(city[i].x * city[j].x + city[i].y * city[j].y + city[i].z * city[j].z);
      return al * R;
}
 
int solve(){
      int i, j;
      char src[30], dst[30];
      scanf("%s %s", src, dst);
      if(strcmp(src, "#") == 0)
          return 0;
      printf("%s - %s\n", src, dst);
      for (i = 0 ; i < ncity && strcmp(city[i].name, src) ; i++);
      for (j = 0 ; j < ncity && strcmp(city[j].name, dst) ; j++);
      if (i == ncity || j == ncity)
          printf("Unknown\n\n");
      else
          printf("%.0f km\n\n", distance(i, j));
      return 1;
}

int main(){
      while (read());
      while (solve());
      //system("PAUSE");
      return 0;
}

输出时,用%.0lf就WA

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator