/*从键盘输入R行C列二维整型数组,找出每一行的次最大值并显示出来。要求:
(1)R和C为符号常量;
(2)二维数组是动态申请生成的;
(3)每一行的次最大值是利用单独的函数调用获得的;
(4)对数组元素的访问以及函数参数声明等都是利用指针实现的。*/
#include<iostream>
using namespace std;
#define R 4
#define C 3
int a[R];
void findmax(int (*p)[C])
{
for(int i=0;i<R;i++)
{
a[i]=p[i][0];
for(int j=1;j<C;j++)
{
if(p[i][j]>a[i])
a[i]=p[i][j];
}
}
}
void find2max(int (*p)[C])
{
for(int i=0;i<R;i++)
{
int second=p[i][0];
for(int j=0;j<C;j++)
{
if(p[i][j]<a[i]&&p[i][j]>second)
second=p[i][j];
}
a[i]=second;
}
for(int k=0;k<R;k++)
cout<<"第"<<k+1<<"行次最大值为:"<<a[k]<<endl;
}
int main()
{
int (*dt)[C];
dt=new int[R][C];
cout<<"请按顺序输入数组元素:"<<endl;
for(int i=0;i<R;i++)
for(int j=0;j<C;j++)
cin>>dt[i][j];
findmax(dt);
find2max(dt);
delete []dt;
return 0;
}
2019面向对象程序设计 作业1
最新推荐文章于 2023-05-03 16:10:24 发布