当前位置:网站首页>Titanic(POJ2361)
Titanic(POJ2361)
2022-06-30 03:55:00 【Cod_ ing】
It is a historical fact that during the legendary voyage of “Titanic” the wireless telegraph machine had delivered 6 warnings about the danger of icebergs. Each of the telegraph messages described the point where an iceberg had been noticed. The first five warnings were transferred to the captain of the ship. The sixth one came late at night and a telegraph operator did not notice that the coordinates mentioned were very close to the current ship’s position.
Write a program that will warn the operator about the danger of icebergs!
The input messages are of the following format:
Message #<n>.
Received at <HH>:<MM>:<SS>.
Current ship’s coordinates are
<X1>^<X2>’<X3>" <NL/SL>
and <Y1>^<Y2>’<Y3>" <EL/WL>.
An iceberg was noticed at
^’" <NL/SL>
and ^’" <EL/WL>.
===
Here is a positive integer, :: is the time of the
message reception, <X1>^<X2>’<X3>" <NL/SL> and <Y1>^<Y2>’<Y3>" <EL/WL>
means “X1 degrees X2 minutes X3 seconds of North (South) latitude and
Y1 degrees Y2 minutes Y3 seconds of East (West) longitude.”
Output
Your program should print to the output file message in the following format:
The distance to the iceberg: <s> miles.Where <s> should be the distance between the ship and the iceberg,
(that is the length of the shortest path on the sphere between the
ship and the iceberg). This distance should be printed up to (and
correct to) two decimal digits. If this distance is less than (but not
equal to!) 100 miles the program should print one more line with the
text:DANGER!
Sample Input
Message #513.
Received at 22:30:11.
Current ship’s coordinates are
41^46’00" NL
and 50^14’00" WL.
An iceberg was noticed at
41^14’11" NL
and 51^09’00" WL.
===
Sample Output
The distance to the iceberg: 52.04 miles. DANGER!
#include<iostream>
#include<cstdio>
#include<cmath>
#include<string>
using namespace std;
double pi=acos(-1.0); // acos() Function does not accept int type , Otherwise, a compilation error will occur
double R=3437.5; // Earth radius ( miles )
inline void change(double &x,double &y){
x=x*pi/180;
y=y*pi/180;
}
//A(wa,jb),B(wx,jy),w Represent dimension ; j It means longitude . North latitude 、 The east longitude is taken as the right
void distance(double a,double b,double x,double y){
double d;
// To calculate the distance between two points on the earth , Please deduce
d=R* acos(cos(a)*cos(x)*cos(b-y)+sin(a)*sin(x));
printf("The distance to the iceberg: %.2lf miles.\n",d);
if(floor(d+0.005)<100)
cout<<"DANGER!\n";
}
int main(){
string s;
double a1,a2,a3,b1,b2,b3,shipw,shipj,icebergw,icebergj;
char a,b;
int i;
for(i=0;i<3;i++)
getline(cin,s);
scanf("%lf^%lf'%lf\" %cL ",&a1,&a2,&a3,&a);
scanf("and %lf^%lf'%lf\" %cL.",&b1,&b2,&b3,&b);
shipw=a1+ a2/60+ a3/3600;
shipj=b1+ b2/60+ b3/3600;
if(a=='S') shipw*=-1;
if(b=='W') shipj*=-1;
change(shipw,shipj);
getchar(); // When getline function Used before scanf function need getchar() The read was not scanf Read about \n
getline(cin,s);
scanf("%lf^%lf'%lf\" %cL ",&a1,&a2,&a3,&a);
scanf("and %lf^%lf'%lf\" %cL.",&b1,&b2,&b3,&b);
icebergw=a1+ a2/60 +a3/3600;
icebergj=b1+ b2/60 +b3/3600;
if(a=='S') icebergw*=-1;
if(b=='W') icebergj*=-1;
change(icebergw,icebergj);
getchar();
getline(cin,s);
distance(shipw,shipj,icebergw,icebergj);
}
边栏推荐
- 【笔记】2022.6.7 数据分析概论
- 124 articles in total! Motianlun "high availability architecture" dry goods document sharing (including Oracle, mysql, PG)
- [Note] ab Test and Variance Analysis
- dbt产品初体验
- (04).NET MAUI实战 MVVM
- Hash design and memory saving data structure design in redis
- [operation] MySQL query operation 2 on May 25, 2022
- Redis中的SDS理解
- Installation and use of yarn
- ReSharper 7. Can X be used with vs2013 preview? [off] - can resharper 7 x be used with VS2013 preview? [closed]
猜你喜欢

声网自研传输层协议 AUT 的落地实践丨Dev for Dev 专栏

11: I came out at 11:04 after the interview. What I asked was really too

Selenium environment installation, 8 elements positioning --01

(04). Net Maui actual MVVM

Tidb 6.0: making Tso more efficient tidb Book rush

【图像融合】基于交叉双边滤波器和加权平均实现多焦点和多光谱图像融合附matlab代码

Wang Shuang - assembly language learning summary

EasyCVR部署服务器集群时,出现一台在线一台不在线是什么原因?

dotnet-exec 0.5.0 released

Hash design and memory saving data structure design in redis
随机推荐
第十天 数据的保存与加载
NER中BiLSTM-CRF解读score_sentence
dbt产品初体验
【论文阅读|深读】Role2Vec:Role-Based Graph Embeddings
MySQL performance optimization (5): principle and implementation of master-slave synchronization
How to use FME to create your own functional software
[image fusion] multi focus and multi spectral image fusion based on cross bilateral filter and weighted average with matlab code
【作业】2022.5.28 将CSV写入数据库
第十二天 进阶编程技术
51 single chip microcomputer indoor environment monitoring system, mq-2 smoke sensor and DHT11 temperature and humidity sensor, schematic diagram, C programming and simulation
Mysql性能优化(5):主从同步原理与实现
Implementation of aut, a self-developed transport layer protocol for sound network -- dev for dev column
RPC correction
Pytorch Profiler+ Tensorboard + VS Code
Interface testing -- how to analyze an interface?
[frequently asked questions] modularization of browser environment and node environment
【笔记】2022.5.28 从网页获取数据并写入数据库
124 articles in total! Motianlun "high availability architecture" dry goods document sharing (including Oracle, mysql, PG)
Use common fileUpload to upload files
巧用 Bitmap 实现亿级海量数据统计