zoj 1037 Gridland

来源:互联网 发布:bi工程师和数据分析 编辑:程序博客网 时间:2024/05/21 23:31
正确代码:
#include <iostream>#include<iomanip>#include<vector>#include<math.h>using namespace std;int main() {int n; cin >> n;vector<int>a,b;a.resize(n);b.resize(n);for(int i=0;i<n;i++) {cin>>a[i]>>b[i]; } for(int i=0;i<n;i++){cout<<"Scenario #"<<i+1<<":"<<endl;if(a[i]%2==1&&b[i]%2==1)cout<<fixed<<setprecision(2)<<(double)(a[i]*b[i]-1+sqrt(2.0))<<endl; elsecout<<fixed<<setprecision(2)<<(double)(a[i]*b[i])<<endl;cout<<endl;}  return 0;}
错误代码:
不知道为什么先前像下面这样写一直都说Segmentation Fault
#include <iostream>#include<iomanip>using namespace std;int main() {int n; cin >> n;double a[50],b[50];for(int i=0;i<n;i++) {cin>>a[i]>>b[i]; } for(int i=0;i<n;i++){cout<<"Scenario #"<<i+1<<":"<<endl;cout<<fixed<<setprecision(2)<<a[i]*b[i]<<endl; }  return 0;}

两者的区别仅仅在于上面使用向量,下面使用数组。
改成向量是因为看到有人说
int n;
cin >> n;
int a[n];
这样写会引起段错误,说是编译时需要一个确定的n值才能int a[n]
但我平时都是这样写的,没想到竟然ac不了是错的 先mark一下
0 0