改进代码:#include <iostream> #include <windows.h> using namespace std; int main() { int n,a[101],m,o[100][2]; cin>>n; int i; for(i=1;i<=n;i++) { cin>>a[i]; } cin>>m; int j; for(j=0;j<m;j++) { cin>>o[j][0];//第j次被杀的鸟儿所在行; cin>>o[j][1];//第j次被杀的鸟儿在该行的位置; if(o[j][0]==1) { a[2]=a[1]-o[j][1]+a[2]; a[1]=0; } if(o[j][0]==n) { a[n-1]=o[j][1]-1+a[n-1]; a[n]=0; } else { a[(o[j][0])+1]=a[(o[j][0])+1]+a[(o[j][0])]-o[j][1]; a[(o[j][0])-1]=a[(o[j][0])-1]+o[j][1]-1; a[(o[j][0])]=0; } } system("cls"); for(i=1;i<=n;i++) { cout<<a[i]<<endl; } return 0; }
时间: 2023-06-13 11:08:09 浏览: 45
下面是改进后的代码:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
#include <numeric>
using namespace std;
int main()
{
int n, m;
cin >> n;
vector<int> a(n + 2);
for (int i = 1; i <= n; i++) {
cin >> a[i];
}
cin >> m;
for (int i = 0; i < m; i++) {
int x, y;
cin >> x >> y;
a[x - 1] += y - 1;
a[x + 1] += a[x] - y;
a[x] = 0;
}
for (int i = 1; i <= n; i++) {
cout << a[i] << endl;
}
return 0;
}
```
改进的思路如下:
1. 使用 vector 容器来存储鸟的数量,避免数组越界的问题。
2. 对于被杀的鸟,不需要特别处理第一行和最后一行的情况,统一使用 a[x-1] 和 a[x+1] 来更新左右两边鸟的数量。
3. 在更新 a[x-1] 和 a[x+1] 的时候,先把 y-1 加到 a[x-1],再把 a[x]-y 加到 a[x+1],这样可以保证 a[x] 的数量为 0。
4. 最后不需要清屏,直接输出每一行的鸟的数量即可。
经过改进后,代码更加简洁,也更容易理解。
相关推荐
![text/x-c](https://img-home.csdnimg.cn/images/20210720083646.png)
![text/plain](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)