有一个3*4的矩阵,编程求出其中最大值,以及其所在的行号和列号。

#include <iostream>
using namespace std;

//如何使用一维数组 ? 
int main(){
    //数组是一个容器,这个容器的特点是存储空间不能改变 ,固定大小的容器 
    int array[3][4]={{11,22,3,45},
                     {4,-15,6,13},
                     {49,58,-76,123}};
    int temp=array[0][0];
    int row=0;
    int col=0;
    for(int i=0;i<3;i++){
        for(int j=0;j<4;j++){
            if(array[i][j]>temp){
                temp=array[i][j];
                row=i;
                col=j;
            }
        }
    }


    cout<<"二维数组的最大值是: "<<temp<<" 所在行是 "<<row+1<<"所在列是 "<<col+1<<endl;

    return 0;
}

 


 

把上边的程序用函数来处理,如何操作?

第一种方法,传递的参数是数组

#include <iostream>
using namespace std;

void maxMatrix(int arr[3][4]){
    
    int temp=arr[0][0];
    int row=0;
    int col=0;
    for(int i=0;i<3;i++){
        for(int j=0;j<4;j++){
            if(arr[i][j]>temp){
                temp=arr[i][j];
                row=i;
                col=j;
            }
        }
    }
    cout<<"二维数组的最大值是: "<<temp<<" 所在行是 "<<row+1<<"所在列是 "<<col+1<<endl;
}
int main(){
    //数组是一个容器,这个容器的特点是存储空间不能改变 ,固定大小的容器 
    int array[3][4]={{11,22,3,45},
                     {4,-15,6,13},
                     {49,58,-76,123}};
    maxMatrix(array);
    return 0;
}

第二种方法,传递的参数是数值

#include <iostream>
using namespace std;

int maxXY(int x,int y){
    return x>y?x:y;
}
int main(){
    //数组是一个容器,这个容器的特点是存储空间不能改变 ,固定大小的容器 
    int array[3][4]={{11,22,3,45},
                     {4,-15,6,13},
                     {49,58,-76,123}};
    int max=array[0][0];
    int row=0;
    int col=0;
    for(int i=0;i<3;i++){
        for(int j=0;j<4;j++){
            max=maxXY(array[i][j],max);
        }
    }
    cout<<"二维数组的最大值是: "<<max<<" 所在行是 "<<row+1<<"所在列是 "<<col+1<<endl;
    return 0;
}

 

posted @ 2017-11-21 09:08  Advancing-Swift  阅读(4690)  评论(0)    收藏  举报