c++二维指针求每行每列次大值

来源:互联网 发布:浪潮软件股票走势 编辑:程序博客网 时间:2024/06/05 15:25

按照要求,必须用指针,且返回值必须要指针。可能有些许问题,但是运行结果暂时无误:

/*从键盘输入R行C列二维整型数组,找出每一行的次最大值并显示出来。要求:(1)R和C为符号常量;(2)二维数组是动态申请生成的;(3)每一行的次最大值是利用单独的函数调用获得的;(4)对数组元素的访问以及函数参数声明等都是利用指针实现的。*//*1 2 3 4 55 2 4 1 118 4 5 9 699 88 4 44 0*/#include<iostream>#include<fstream>using namespace std;void scanf_num(int **p, int row, int col);void print_num(int **p, int row, int col);int *second_num(int *p, int col, int &max2);void file_write(int **p, int *second, int row, int col);int main(){int max2;int row, col;cout << "请输入行列:";cin >> row >> col;int **p = new int*[row];int *second = new int[row];for(int i = 0; i < row; i++)p[i] = new int[col];//读入数值scanf_num(p, row, col);//找次大值for(int i = 0; i < row; i++){*(second + i) = *second_num(*(p + i), col, max2);}//显示数值cout << "输入的数是" << row << "行" << col << "列:" << endl;print_num(p, row, col);cout << "每行的次大值一次是:\n";for(int i = 0; i < row; i++){cout << *(second + i) << " ";}cout << endl;file_write(p, second, row, col);delete p;delete second;    return 0;}//读入函数void scanf_num(int **p, int row, int col){for(int i = 0; i < row; i++){for(int j = 0; j < col; j++){cin >> *(*(p + i) + j);}}}//输出函数void print_num(int **p,int row,int col){for(int i = 0; i < row; i++){for(int j = 0; j < col; j++){cout << *(*(p + i) + j) << " ";}cout << endl;}}int *second_num(int *p,int col,int &max2){int max1;int i;max1 = max2 = *p;if(*(p + 1) < *(p))max2 = *(p + 1);for(i = 1; i < col; i++){if(*(p + i) > max1){max2 = max1;max1 = *(p + i);}if(*(p + i) > max2&&*(p + i) < max1)max2 = *(p + i);}return &max2;}void file_write(int **p, int *second, int row, int col){ofstream fout("file.txt");if(!fout){cout << "文件读取失败!" << endl;}fout << "输入的数是" << row << "行" << col << "列:" << endl;for(int i = 0; i < row; i++){for(int j = 0; j < col; j++){fout << *(*(p + i) + j) << " ";}fout << endl;}fout << "每行的次大值一次是:\n";for(int i = 0; i < row; i++){fout << *(second + i) << " ";}fout << endl;fout.close();}
在要求中,次最大值用循环查找,设置两个变量,一个存放最大值,一个存放小于最大值但大于其他的值,最后返回即可,题目总体来说比较简单,但是考察到了二维指针,次最大值,文件读取等。

原创粉丝点击