欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

如何在二维数组中, 分别找出最大的数&&次大的数

程序员文章站 2022-03-03 08:24:59
...

这里我用指针数组

指针数组的定义: 类型 *指针数组名[元素个数];

参考:

#include <stdio.h>
#include <stdlib.h>

int main()
{
	int girls[4][3] = { 
		{173,158,166},
		{168,155,171},
		{163,164,165},
		{163,164,172} };

	int* qishou[2]; /* 定义有两个元素的指针数组, 每个元素都是一个指针变量 */

	if (girls[0][0] > girls[0][1])
	{
		qishou[0] = &girls[0][0];
		qishou[1] = &girls[0][1];
	}
	else
	{
		qishou[0] = &girls[0][1];
		qishou[1] = &girls[0][0];
	}

	
	for (int i = 2; i < 12; i++)
	{
		if (*qishou[1] >= girls[i / 3][i % 3])
		{
			continue; /* 第2名>=候选人的跳过(反过来也就是, 筛选出候选人 > 第二名) */
		}

		/* 1. 候选人比冠军矮 */
		if (girls[i / 3][i % 3] <= *qishou[0])
		{
			qishou[1] = &girls[i / 3][i % 3];
		}
		else /* 2. 候选人比冠军高 */
		{
			qishou[1] = qishou[0];
			qishou[0] = &girls[i / 3][i % 3];
		}
	}

	printf("最高女兵的身高: %d, 次高女兵的身高: %d\n", *qishou[0], *qishou[1]);

	system("pause");
	return 0;
}

运行环境: vs2019
运行结果:
如何在二维数组中, 分别找出最大的数&&次大的数

结语:

学到的知识要, 多复习, 多总结, 多敲. 需要时间的积累, 才能引起质的改变. 自己写不出来的永远是别人的.

分享一下我的技巧: 代数法把具体的数字带进去, 看看能能能找到规律(掌握思想).
还有就是画图, 也很重要. 用笔画出来, 把数代进去, 方法虽然笨, 但真的很实用, 好记忆不如烂笔头!!!

我是小白, C/C++功力…, 你懂得, 写的文章可能不是很好. 如果存在问题, 欢迎大神给予评判指正.
错了不可怕, 可怕的是找不出bug, 谁没错过!!!

今日是: 2020年5月5日, (由于疫情的原因)在家里整天坐在电脑前, 眼神逐渐从大到小, 视力也有所大大的下降 ,中午期待打篮球. 写博客, 就当写写日记吧!!!,

希望给个赞: 反正你又不亏, 顺便而已