欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > 使用数组 海选女主角

使用数组 海选女主角

2025/6/23 23:10:32 来源:https://blog.csdn.net/weixin_46466243/article/details/148781411  浏览:    关键词:使用数组 海选女主角

问题描述

面试那天,刚好来了m * n个MM,站成一个m * n的队列,副导演Fe(OH)2为每个MM打了分数,分数都是32位有符号整数。
一开始我很纳闷:分数怎么还有负的?Fe(OH)2解释说,根据选拔规则,头发染成黄色、化妆太浓、穿的太少等等都要扣分数的,扣的多了就可能是负分了,当然,如果发现话语中夹有日语,就直接给 -2147483648分 了。
分数送上来了,是我做决定的时候了,我的一个选拔原则是,要选一个面试分数绝对值(必须还是32位整数)最大的MM。
特别说明:如果不幸选中一个负分的MM,也没关系,因为我觉得,如果不能吸引你,那要想法恶心你。

输入数据有多组,每组的第一行是两个整数m和n,表示应聘MM的总共的行列数,然后是m行整数,每行有n个,m和n的定义见题目的描述。

对于每组输入数据,输出三个整数x,y和s,分别表示选中的MM的行号、列号和分数。
注意:行号和列号从一开始,如果有多个MM的分数绝对值一样,那么输出排在最前面的一个(即行号最小的那个,如果行号相同则取列号最小的那个)。

输入样本

2 3
1 4 -3
-7 3 0

输出样本

2 1 -7

解题思路

  1. m * n 个MM,说明这是一个二维数组
  2. 分数是一个32位有符号的整数,说明这是一个整数类型
  3. 根据题目中,该题中实际要对比的是数字的绝对值,并且如果同一列中,存在相同的变量,去行最小,如果行相同,取列最小
  4. 如何输入变量到二维数组中?
    需要使用两个 for 循环结构,进行嵌套输入数组的变量,一个表示行,一个表示列
  5. 如何对输入的数组变量变成绝对值进行判定?
    需要调用头文件 <cmath> 使用 abs 函数进行绝对值判定,在使用 if 结构进行判定,但是在这之前需要定义一个变量,用来存储最大绝对值
  6. 如何输出对应的位置和数组变量?
    在最后进行输出的时候,需要对行号和列号,进行加一,并输出行号和列号对应的数组变量
  7. 问题中提到的当遇到两个相同的变量,取排在最前的行号和列号,怎么处理?
    这点可以不用进行处理,因为代码在运行的过程中是从上到下,从左到右,进行依次处理,只要在使用 if 结构在进行判定的时候不要使用 大于等于小于等于 即可

代码示例

#include <iostream>
#include <cmath>														// 调用头文件
using namespace std;int main() {int a[100][100];													// 定义数组变量int m , n;															// 定义女主角的变量while(cin >> m >> n){												// 反复输入操作int b = 0 , c , d;												// 设定三个变量,一个用来存储最大绝对值,另外两个用来存储行号和列号for(int i = 0 ; i < m ; ++i){									// 使用 for 循环进行二维数组行号的操作cout << endl;												// 输出换行符,便于直观查看,可不写for(int j = 0 ; j < n ; ++j){								// 使用 for 循环进行二维数组列号的操作cin >> a[i][j];											// 输入变量到二维数组if(abs(a[i][j]) > b ){									// 若数组绝对值 > 0 进行更换操作b = abs(a[i][j]);									// b = 新的数组变量绝对值c = i ;												// c = 对应的行号d = j ;												// d = 对应的列号}}}cout << (c+1) << ' ' << (d+1) << ' ' << a[c][d] << endl;		// 按照输出样本,输出对应的行号和列号,以及对应的变量。}return 0;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词