C++编程题:手动输入一个3行4列的二维数组a,把二维数组a的每一行的最大元素放到一个一维的数组中。

例如:a[3][4]={{1,2,7,8},{3,4,9,10},{5,6,11,12}},则b[3]={8,10,12}

#include<iostream>
using namespace std;
int main() {
int a[3][4];
int b[3],i,j,max;
for(i=0;i<3;i++){
for(j=0;j<4;j++){
cin>>a[i][j];
}
}
for(i=0;i<3;i++){
max=a[i][0];
for(j=1;j<4;j++){
if(max<a[i][j]){
max=a[i][j];
}
}
b[i]=max;
}
cout<<"b[3]={";
for(i=0;i<3;i++){
cout<<b[i]<<",";
}
cout<<"\b";
cout<<"}";
return 0;
}

追问

请问大神怎么直接输出数字不用b[3]={4,4,4}直接4 4 4?

追答

把多余的输出语句去掉就行。
#include
using namespace std;
int main() {
int a[3][4];
int b[3],i,j,max;
for(i=0;i>a[i][j];
}
}
for(i=0;i<3;i++){
max=a[i][0];
for(j=1;j<4;j++){
if(max<a[i][j]){
max=a[i][j];
}
}
b[i]=max;
}
for(i=0;i<3;i++){
cout<<b[i]<<" ";
}
return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-06-20
这是代码,我将一些行的代码都注释了,希望你能理解。
#include <iostream>
using namespace std;
int max(int a, int b) //定义max函数,用于返回两数之间最大值(给mymax函数用)
{
return a > b ? a : b;
}
int mymax(int a, int b, int c, int d) //定义mymax函数,用于返回四数之间最大值
{
return max(max(max(a, b), c), d);
}
int main()
{
int a[3][4], b[3]; //定义数组
for (int i = 0; i < 3; i++) //定义循环用于遍历数组a的行
{
for (int j = 0; j < 4; j++) //定义循环用于遍历数组a的列
{
cin >> a[i][j]; //用cin来输入数据到数组a的指定元素
}
b[i] = mymax(a[i][0], a[i][1], a[i][2], a[i][3]); //求该行中最大值存储到b[i]
}
//剩下的操作是开发者自愿编写(毕竟并未要求输出之类的操作,只说存储)
return 0; //退出程序
}
相似回答