标签:数据 while 溢出 bubuko max src nbsp algo 初始
一、
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 数据格式才可以。
各种数据类型范围
标签:数据 while 溢出 bubuko max src nbsp algo 初始
原文地址:https://www.cnblogs.com/ruo-li-suo-yi/p/9545409.html