c++编程

来源:互联网 发布:康佳电视的网络功能 编辑:程序博客网 时间:2024/06/11 14:50

//题目:
//在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。
//请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

#include<iostream>

using namespace std;
bool Find(int *matrix, int rows, int columns, int number);  //函数声明

int main()
{
    int a[4][4];
    /*输入二维数组,每一行都从左到右递增排序, 每一列都从上到下递增排序*/
    for (int i = 0; i < 4; i++)
        for (int j = 0; j < 4; j++)
        {
            cin >> a[i][j];
        }
    // 输出二维数组
    for (int i = 0; i < 4; i++)
    {
        for (int j = 0; j < 4; j++)
        {
            cout << a[i][j] << " ";
        }
        cout << endl;
    }
    cout<<Find(&a[0][0], 4, 4, 7)<<endl;  //调用函数
    return 0;
}

//函数定义
bool Find(int *matrix, int rows, int columns, int number)
{
    bool found = false;

    if (matrix != NULL && rows > 0 && columns > 0)
    {
        int row = 0;
        int column = columns - 1;

        while (row < rows && column >= 0)
        {
            if (matrix[row * columns + column] == number)
            {
                found = true;
                break;
            }
            else if (matrix[row * columns + column] > number)
                --column;
            else
                ++row;
        }
    }

    return found;
}

0 0