HOJ 1766 -- Dog & Gopher

HOJ 1766 -- Dog & Gopher
模拟题
sscanf(从字符串读数)
 1  #include  < cstdio >
 2  #include  < cstring >
 3  #define  esp 1e-6
 4 
 5  double  dis( double  x1,  double  y1,  double  x2,  double  y2)
 6  {
 7       return  (x1  -  x2)  *  (x1  -  x2)  +  (y1  -  y2)  *  (y1  -  y2);
 8  }
 9  int  main()
10  {   
11       char  str[ 1000 ];
12       double  x1,y1,x2,y2,a,b;
13       int  flag;
14      
15       while (scanf( " %lf%lf%lf%lf " & x1,  & y1,  & x2,  & y2)  ==   4 )
16      {
17          getchar();
18          flag  =   0 ;
19           while ( 1 )
20          {
21               char *  x  =  gets(str);
22               if (strlen(str)  ==   0   ||  x  ==  NULL)  break ;
23              sscanf(str, " %lf%lf " & a,  & b);
24               if ( ! flag  &&  dis(x1, y1, a, b)  *   4   <   dis(x2, y2, a, b))
25              {
26                  printf( " The gopher can escape through the hole at (%.3lf,%.3lf).\n " , a, b);
27                  flag  =   1 ;     
28              }
29          }
30           if ( ! flag) printf( " The gopher cannot escape.\n " );
31      }
32       return   0 ;
33  }

你可能感兴趣的:(HOJ 1766 -- Dog & Gopher)