酷代码 AI
菜单
服务商

#include<bits/stdc++.h> using namespace std; int main(){ int m,n,x[110][110]; cin>>m>>n; int sum=0; for(int i=0; i<m; i++) for(int j=0; j<n; j++) cin>>x[i][j]; for(int i=0; i<m; i++) for(int j=0; j<n; j++) if(i==1 || i==m-1 || j==0 || j==n-1) sum+= x[i][j]; cout<<sum; return 0; } 寻找错误

你提供的代码在逻辑判断部分存在错误,具体错误点和修正方法如下: 错误分析 在判断矩阵边缘元素的条件语句 `if(i==1 || i==m-1 || j==0 || j==n-1)` 中,`i==1` 这一条件有误。我们要判断的是第一行元素,在 C++ 里数组下标从 0 开始,所以第一行对应的下标应该是 `i == 0`,而不是 `i == 1`。 修正后的代码 ```cpp #include<bits/stdc++.h> using namespace std; int main(){ int m,n,x[110][110]; cin>>m>>n; int sum=0; // 输入矩阵元素 for(int i=0; i<m; i++) for(int j=0; j<n; j++) cin>>x[i][j]; // 计算矩阵边缘元素的和 for(int i=0; i<m; i++) for(int j=0; j<n; j++) // 正确判断矩阵边缘元素 if(i==0 || i==m-1 || j==0 || j==n-1) sum+= x[i][j]; // 输出结果 cout<<sum; return 0; } ``` 修正点解释 把 `if(i==1 || i==m-1 || j==0 || j==n-1)` 改成 `if(i==0 || i==m-1 || j==0 || j==n-1)`,这样就能正确判断矩阵的第一行、最后一行、第一列和最后一列的元素,进而正确计算矩阵边缘元素的和。 [2025-12-01 13:57:44 | AI问答 | 399点数解答]

相关提问
发财导航,免费问AI
实用工具查看更多