【发布时间】:2021-06-10 23:03:06
【问题描述】:
我已经尝试了一段时间,但我无法弄清楚。 我必须编写一个程序,在矩阵中找到顶部、底部、左侧和右侧的数字并将它们打印出来。我做了它打印底部、左侧和右侧数字的位置,但不知道如何打印顶部的数字。
#include <iostream>
using namespace std;
int main()
{
int a[10][10],i,j,m,n,zb,zb2,zb3,zb4;
cin>>m>>n;
for(i=0;i<n;i++){
for(j=0;j<m;j++){
cin>>a[i][j];
}
}
for(i=0;i<n;i++){
for(j=0;j<m;j++){
if(i+j<m-1){
zb=a[i][j]; // first
}
if(i+j<m+1){
zb2=a[i][j]; // second
}
if(i<j){
zb3=a[i][j]; // third
}
if(n+m<j+1){
zb4=a[i][j]; // fourth
}
}
}
cout<<zb<<endl;
cout<<zb2<<endl;
cout<<zb3<<endl;
cout<<zb4<<endl;
return 0;
}
程序如何工作的图表 Example of program
提前谢谢你!
【问题讨论】:
-
提示:使用
#define或常量作为阵列容量。然后,您可以在其他地方使用它们。更改阵列容量时,您只需修改一个位置。示例:const unsigned int MAX_ROWS = 10U;. -
那么您要打印四个角,还是四个边?从代码中真的不清楚你想做什么。
-
一个好的minimal reproducible example 不会像这样依赖用户输入。将
a设置为显示错误的值。也许简化为“顶部”和“底部”计算(一个有效,一个无效)。告诉我们预期和实际输出是什么。奖励:告诉我们您为什么认为您的程序应该有效。 -
@silverfox 我想打印每个边的中间部分,如示例所示。周围有红色的!
-
对于具有偶数列或偶数行的矩阵,您要打印什么?