鱼C论坛

 找回密码
 立即注册
查看: 957|回复: 2

[已解决]数组

[复制链接]
发表于 2020-11-15 14:50:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
描述


求某矩阵中最大元素所在的位置,在此用下标表示。


输入


输入有k个用例,每个用例的第一行为矩阵行数(m)和列数(n),接下来m行,每行n个元素(整数)。可以假定矩阵中只有一个数是最大值。


输出


对每一个用例,用一行输出最大值,所在行标和列标,用空格隔开。(注:行标和列表采用数组中下标表示,即从0开始)


样例输入

2
2 3
1 2 3
4 5 6
3 3
1 4 7
9 6 3
2 5 8
样例输出

6 1 2
9 1 0





完全没有思路哇,救救孩子!
最佳答案
2020-11-15 17:30:25
  1. #include <stdio.h>
  2. int main()
  3. {
  4.         int a, i, j, k;
  5.         int m, n, max, x, y;
  6.         int array[100][100];          // 假设数组最大为100行,100列
  7.         scanf_s("%d", &k);
  8.         for (a = 0;a < k;a++)         // 有 k 个用例
  9.         {
  10.                 scanf_s("%d%d", &m, &n);  // 定义数组大小
  11.                 for (i = 0;i < m;i++)     // 输入数组元素
  12.                 {
  13.                         for (j = 0;j < n;j++)
  14.                         {
  15.                                 scanf_s("%d", &array[i][j]);
  16.                         }
  17.                 }

  18.                 max = array[0][0];        // 假设数组的第一个数就是最大值
  19.                 for (i = 0;i < m;i++)
  20.                 {
  21.                         for (j = 0;j < n;j++)
  22.                         {
  23.                                 if (max < array[i][j])
  24.                                 {
  25.                                         max = array[i][j];
  26.                                         x = i;        // 记录下最大值的行
  27.                                         y = j;        // 记录下最大值的列
  28.                                 }
  29.                         }
  30.                 }
  31.                 printf("%d %d %d", max, x, y);
  32.                 printf("\n");
  33.         }
  34. }
复制代码

本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-11-15 15:13:29 | 显示全部楼层
遍历这个二维数组,每次判断是否为最大值就行了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-15 17:30:25 | 显示全部楼层    本楼为最佳答案   
  1. #include <stdio.h>
  2. int main()
  3. {
  4.         int a, i, j, k;
  5.         int m, n, max, x, y;
  6.         int array[100][100];          // 假设数组最大为100行,100列
  7.         scanf_s("%d", &k);
  8.         for (a = 0;a < k;a++)         // 有 k 个用例
  9.         {
  10.                 scanf_s("%d%d", &m, &n);  // 定义数组大小
  11.                 for (i = 0;i < m;i++)     // 输入数组元素
  12.                 {
  13.                         for (j = 0;j < n;j++)
  14.                         {
  15.                                 scanf_s("%d", &array[i][j]);
  16.                         }
  17.                 }

  18.                 max = array[0][0];        // 假设数组的第一个数就是最大值
  19.                 for (i = 0;i < m;i++)
  20.                 {
  21.                         for (j = 0;j < n;j++)
  22.                         {
  23.                                 if (max < array[i][j])
  24.                                 {
  25.                                         max = array[i][j];
  26.                                         x = i;        // 记录下最大值的行
  27.                                         y = j;        // 记录下最大值的列
  28.                                 }
  29.                         }
  30.                 }
  31.                 printf("%d %d %d", max, x, y);
  32.                 printf("\n");
  33.         }
  34. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-26 17:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表