try { int x = 10/0; } catch(exception &e) { cout << "Error: " << e.what(); }
二、GESP-C++ 考试四级编程题模板
1. 二维数组处理模板
#include<bits/stdc++.h> using namespace std; const int N = 1010; int a[N][N]; int main() { int n,m; cin >> n >> m; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) cin >> a[i][j]; // 示例操作:求二维数组元素和 int sum = 0; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) sum += a[i][j]; cout << sum << endl; return 0; }
#include<bits/stdc++.h> using namespace std; int main(){ int n; cin >> n; vector<int> a(n); for(int i=0;i<n;i++) cin >> a[i]; int cnt=1, mx=1; for(int i=1;i<n;i++){ if(a[i]==a[i-1]+1) cnt++; else cnt=1; mx = max(mx, cnt); } cout << mx << endl; return 0; }
4. 二维矩阵最大矩形/子矩形
#include<bits/stdc++.h> using namespace std; const int N = 15; int a[N][N]; int main(){ int n,m; cin >> n >> m; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) cin >> a[i][j]; int ans=0; for(int u=1;u<=n;u++) for(int l=1;l<=m;l++) for(int d=u;d<=n;d++){ int chk=1; for(int r=l;r<=m;r++){ for(int x=u;x<=d;x++) chk &= a[x][r]; if(!chk) break; ans = max(ans, (r-l+1)*(d-u+1)); } } cout << ans << endl; return 0; }
5. 矩阵/字符处理
#include<bits/stdc++.h> using namespace std; char s[105][105]; int main(){ int n,m; cin >> n >> m; for(int i=1;i<=n;i++) cin >> s[i]+1; // 输出子矩阵 int x1,x2,y1,y2; cin >> x1 >> x2 >> y1 >> y2; for(int i=x1;i<=x2;i++){ s[i][y2+1]=0; cout << s[i]+y1 << endl; } return 0; }
6. 常见遍历方向数组模板
constint d[4][2] = {{-1,0},{1,0},{0,-1},{0,1}}; // 上下左右 for(int k=0;k<4;k++){ int ni = i + d[k][0]; int nj = j + d[k][1]; }
7. 前缀和 / 子矩阵和模板
int sum[N][N]; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) sum[i][j] = a[i][j] + sum[i-1][j] + sum[i][j-1] - sum[i-1][j-1]; // 区域和 int x1,y1,x2,y2; int ans = sum[x2][y2]-sum[x1-1][y2]-sum[x2][y1-1]+sum[x1-1][y1-1];
8. 排序 + 条件统计模板
#include<bits/stdc++.h> using namespace std; int main(){ int n; cin >> n; vector<int> a(n); for(int i=0;i<n;i++) cin >> a[i]; sort(a.begin(), a.end()); int ans=0; for(int i=0;i<n;i++) for(int j=i+1;j<n;j++) if(a[i]<a[j]) ans++; cout << ans << endl; }
三、C++ 四级考前快速复习汇总表
1. 基础知识点
知识点
关键内容
示例
指针
存储变量地址的变量
int a=5; int* p=&a; cout<<*p;
二维/多维数组
定义、访问
int a[3][4]; a[1][2]=10;
结构体
定义、数组、指针、嵌套
struct Student{string name; int age;}; Student s[10];