C语言编程题,简单点的编程过程

编写函数,求出一个二维数组中各行最大值中最小的数及其下标,求出各列最小值中最大的数及其下标。在main函数中验证。要求:二维数组的行数、列数、数组元素均在main函数中由键盘输入。

#include void main() { int a[4][4],i,j,max,row1,column1; int min,row2,column2; for (i=0;i<4;i++) for (j=0;j<4;j++) scanf(“%d”,&a[i][j]); max=a[0][0];row1=0;column1=0; min=a[0][0];row2=0;column2=0; for (i=0;i<4;i++) for (j=0;j<4;j++) { if (maxa[i][j]) { min=a[i][j]; row2=i; column2=j; } } printf(“max=%d,row=%d,column=%d\n”,max,row1+1,column1+1); printf(“min=%d,row=%d,column=%d\n”,min,row2+1,column2+1); }

需要用到指针的指针

#include<stdio.h>
#include <stdlib.h>
using namespace std;

/*
编写函数,求出一个二维数组中各行最大值中最小的数及其下标,求出各列最小值中最大的数及其下标。
在main函数中验证。要求:二维数组的行数、列数、数组元素均在main函数中由键盘输入。
*/


void MinRow(int **p, int n, int m, int &r, int &c)
{
	int i, j;
	r = 0;
	c = 0;
	for (i = 0; i < n; i++)
	{
		for (j = 1; j < m; j++)
		{
			if (p[i][j] > p[i][c])
				c = j;
		}
		if (p[i][c] < p[r][c])
			r = i;
	}
}

void MaxCol(int **p, int n, int m, int &r, int &c)
{
	int i, j;
	r = 0;
	c = 0;
	for (j = 0; j < m; i++)
	{
		for (i = 1; i < m; i++)
		{
			if (p[i][j] < p[r][j])
				r = i;
		}
		if (p[r][j] > p[r][c])
			r = i;
	}
}

int main()
{
	int n, m, i,j,r,c;
	printf("请输入二维数组行数和列数:");
	scanf_s("%d %d", &n, &m);
	getchar();
	int **p = new int*[n];
	for (i = 0; i < n; i++)
	{
		p[i] = new int[m];
		for (j = 0; j < m; j++)
			scanf_s("%d", &p[i][j]);
	}
	//
	MinRow(p, n, m, r, c);
	printf("各行最大值中最小的数及其下标为:p[%d][%d]=%d\n", r, c, p[r][c]);
    MaxCol(p, n, m, r, c);
	printf("各列最小值中最大的数及其下标:p[%d][%d]=%d\n", r, c, p[r][c]);
	return 0;
}


 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632