编写函数findmax(),将mxn二维数组中每行最大值,按一一对应的顺序放入一维数组中。如int a[5][5],s[5],即将a[0]行的最大值存放于s[0],以此类推。
输入样例:
每行输入5个数,按回车输入:
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
输出样例:
输出每行的最大值,空格隔开(最后一个数字后也有空格)
5 10 15 20 25
代码如下:
#include<>
void findmax(int(*pa)[5], int lines, int cols, int* ps)
{
int i,j;
for (i = 0; i < lines; i++)
{
for (j = 0; j < cols; j++)
{
*(ps + i) = *(*(pa + i));
if (*(ps + i) < *(*(pa + i) + j))
*(ps + i) = *(*(pa + i) + j);
}//for
}//for
}//findmax
int main()
{
int a[5][5], s[5], i, j;
// printf("请输入一个5x5的二维数组:\n");
for (i = 0; i < 5; i++)
for (j = 0; j < 5; j++)
scanf("%d", &a[i][j]);
findmax(a, 5, 5, s);//调用函数找出每行最大值保存到数组s中
for (i = 0; i < 5; i++) {
printf("%d ", s[i]);
}
return 0;
}