版权声明:原创文章,转载请注明出处: https://blog.csdn.net/hi_baymax/article/details/82829663
整理题目时发现我居然没截图,不过题比较简单,大意是进入游戏时随机到一个坐标点,游戏中有多个NPC在固定的坐标位置,求距离人物最近的NPC的位置。需要动个脑筋的是输入是x,y,n,x1,y1,x2,y2.....x和y是人物坐标位置,n为NPC个数,之后的都是NPC坐标,“,“为英文逗号。
代码入下:
#include <stdio.h>
#include <iostream>
#include <vector>
#include <map>
#include<algorithm>
#include <string>
#include <math.h>
using namespace std;
double GetLength(int xNPC,int yNPC,int x,int y,int XALL,int YALL)
{
if (x>XALL||y>YALL||xNPC>XALL||xNPC>YALL)
{
return 0;
}
double dLength=0;
dLength=sqrt((double)(x-xNPC)*(x-xNPC)+(y-yNPC)*(y-yNPC));
return dLength;
}
int main()
{
int x;cin>>x;
string str;getline(cin,str,',');
int y;cin>>y;
getline(cin,str,',');
int N;cin>>N;
int XALL=128;
int YALL=128;
double dMAX=0;
int XNPCWANT,YNPCWANT;
if (N>1000)
{
return 0;
}
for (int i=0;i<N;i++)
{
getline(cin,str,',');
int xNPC;cin>>xNPC;
getline(cin,str,',');
int yNPC;cin>>yNPC;
double dTemp=GetLength(xNPC,yNPC,x,y,XALL,YALL);
if (i==0)
{
dMAX=dTemp;
XNPCWANT=xNPC;
YNPCWANT=yNPC;
}
if (dMAX>dTemp)
{
dMAX=dTemp;
XNPCWANT=xNPC;
YNPCWANT=yNPC;
}
}
cout<<"("<<XNPCWANT<<","<<YNPCWANT<<")"<<endl;
return 0;
}
重点需要关注的是:如何读得逗号间隔:
string str.getline(cin,str,',');