360机试

一、

 

1、

#include<iostream>
#include<algorithm> 

using namespace std;

struct node{  //结构体定义点 
    int x;
    int y;
}d[1000];

int main()
{
	int n;
	while(cin>>n)
	{
		int xmin,xmax,ymin,ymax;  //四个最大最小坐标点 
		for(int i=0;i<n;i++)
		{
			cin>>d[i].x>>d[i].y;
		}
		xmin=d[0].x;  //赋初始值 
		xmax=d[0].x;
		ymin=d[0].y;
		ymax=d[0].y;
		for(int i=1;i<n;i++)
		{
			if(xmin>d[i].x){
				xmin=d[i].x;
			}
			if(xmax<d[i].x){
				xmax=d[i].x;
			}
			if(ymin>d[i].y){
				ymin=d[i].y;
			}
			if(ymax<d[i].y){
				ymax=d[i].y;
			}
		}
		int l;
		l=max(xmax-xmin,ymax-ymin); //求出面积 
		cout<<l*l;	
	}
	return 0; 
} 

通过率36% ,由于忽略了int 的范围。

int 范围 [-2^31 , 2^31 -1] 即 [-2147483648,2147483647]

所以很容易溢出。

出错

2、

#include<iostream>
#include<algorithm> 

using namespace std;

struct node{  //结构体定义点 
    long long x,y; 
}d[1000];

int main()
{
	int n;
	while(cin>>n)
	{
		long long xmin,xmax,ymin,ymax;  //四个最大最小坐标点 
		for(int i=0;i<n;i++)
		{
			cin>>d[i].x>>d[i].y;
		}
		xmin=d[0].x;  //赋初始值 
		xmax=d[0].x;
		ymin=d[0].y;
		ymax=d[0].y;
		for(int i=1;i<n;i++)
		{
			if(xmin>d[i].x){
				xmin=d[i].x;
			}
			if(xmax<d[i].x){
				xmax=d[i].x;
			}
			if(ymin>d[i].y){
				ymin=d[i].y;
			}
			if(ymax<d[i].y){
				ymax=d[i].y;
			}
		}
		long long l;
		l=max(xmax-xmin,ymax-ymin); //求出面积 
		cout<<(l*l);	
	}
	return 0; 
} // 2 800000000 900000000 -800000000 -900000000 

用 long long 数据格式才可以。

 

各种数据类型范围

猜你喜欢

转载自www.cnblogs.com/ruo-li-suo-yi/p/9545409.html
360