首页 > 试题广场 >

最高身高

[编程题]最高身高
  • 热度指数:22791 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解

KiKi想从nm列的方阵队列中找到身高最高的人的位置,请你帮助他完成这个任务。


输入描述:

第一行包含两个整数n和m,表示这个方阵队列包含n行m列。从2到n+1行,每行输入m个整数(范围-231~231-1),用空格分隔,共输入n*m个数,表示方阵中的所有人的身高(保证输入身高都不相同)。(1≤x≤n≤10,1≤y≤m≤10)



输出描述:
一行,输出两个整数,用空格分隔,表示方阵中身高最高的人所在的行号和列号。
示例1

输入

2 2
175 180
176 185

输出

2 2
#include<stdio.h>
int main()
{
    int arr[10][10] = {0},n,m,x,y;
    int max = 0,max_x = 0,max_y = 0;
    scanf("%d %d",&n,&m);
    for(int i = 0;i < n;i++)
    {
        for(int j = 0;j < m;j++)
        {
            scanf("%d",&arr[i][j]);
            if(max < arr[i][j])
            {
                max = arr[i][j];
                max_x = i,max_y = j;
            }         
        }   
    }
    printf("%d %d\n",max_x + 1,max_y + 1);
    return 0;
}

发表于 2022-08-04 14:29:30 回复(0)
#include<stdio.h>
int main()
{
    int n , m , x , y;
    scanf("%d %d", &n , &m);
    int a[10][10] = {0};
    int max = 0;
    for(int i = 0 ; i < n ; i++)
    {
        for(int j = 0 ; j < m ; j++)
        {
            scanf("%d", &a[i][j]);
            if(a[i][j] > max)
            {
                max = a[i][j];
                x = i + 1;
                y = j + 1;
            }
        }
    }
    printf("%d %d", x , y);
    return 0;
}

发表于 2022-06-28 12:25:34 回复(0)
n,m= list(map(int,input().split()))
#创建一个空的列表用来存储二维数组
li = []
#初始化最大值为0
max = 0
for _ in range(n):
    #把第2~n +1行的数据添加到li数组中,并用空格隔开(split默认的就可以)
    li.append(list(map(int,input().split())))
#采用双层循环遍历二维数组
for i in range(n):
    for j in range(m):
        #加入一个判断条件,判断遍历的值是否大于现存的max,如果大于就不断的更新max,同时将max所在的行和列更新
        if li[i][j]>max:
            max = li[i][j]
            #这里的行和列的记录很关键,i和j可能会变,但是x y总是比索引大1,也是动态变化
            x = i + 1
            y = j + 1
        #这段else代码貌似没有啥具体的用处
        else:
            continue
#最后打印输出行数以及列数
print(x,y)

发表于 2022-03-30 11:54:15 回复(0)
#include<stdio.h>
int main()
{
	int i, j,m,n;
	int a[50][50] = { 0 };
    scanf("%d %d",&m,&n);//输入数组
	for (i = 0; i < m; i++)
	{
		for (j = 0; j < n; j++)
		{
			scanf("%d", &a[i][j]);
		}
	}
    int max=a[0][0];
    for (i = 0; i < m; i++)
	{
		for (j = 0; j < n; j++)
		{
			if(max<a[i][j])
            {
                max=a[i][j];
            }
		}
	}
    for (i = 0; i < m; i++)
	{
		for (j = 0; j < n; j++)
		{
			 if(max==a[i][j])
             {
                  printf("%d %d\n",i+1,j+1);
             }
		}
	}
    return 0;
}

发表于 2021-12-29 02:10:41 回复(0)
#include<stdio.h>
int main(){
    int m,n;
    scanf("%d %d",&m,&n);
    int a[m][n],max=-1,r,l;
    for(int i=0;i<m;i++)
        for(int j=0;j<n;j++){
            scanf("%d",a[i][j]);
            if(a[i][j]>max){
                max=a[i][j];
                r=i+1;
                l=j+1;
            }
        }
    printf("%d %d",r,l);
    return 0;
}

发表于 2021-04-10 14:35:45 回复(0)
一个循环就搞定的解法
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        int n=input.nextInt();
        int m=input.nextInt();
        int x=0,y=0,max=0;
        for(int i=0;i<n*m;i++){
            int temp=input.nextInt();
            if(max<temp){
                max=temp;
                y=i%m+1;
                x=(i+1-y)/m+1;
            }
        }
        System.out.println(x+" "+y);
    }
}

发表于 2021-01-03 20:03:07 回复(1)
#include<iostream>
using namespace std;
int main()
{
    int n,m;
    cin>>n>>m;
    int** a=new int*[n];
    for(int i=0;i<n;i++)
        a[i]=new int[m];
     for(int i=0;i<n;i++)
     {
         for(int j=0;j<m;j++)
             cin>>a[i][j];
     }
    int max=0;
    int p=0;
    int q=0;
    for(int i=0;i<n;i++)
        for(int j=0;j<m;j++)
        {
            if(a[i][j]>max)
            {
                max=a[i][j];
                p=i+1;
                q=j+1;
            }
        }
    cout<<p<<" "<<q;
    for(int i=0;i<n;i++)
        delete []a[i];
    delete []a;
    return 0;
}

发表于 2020-07-11 12:21:33 回复(0)
import java.util.Scanner;
public class Main{
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int m=sc.nextInt();
        int[][] arr=new int[n+1][m+1];
        int a=0,b=0,max=0;
        for (int i=1;i<=n;i++){
            for (int j=1;j<=m;j++){
                arr[i][j]=sc.nextInt();
                if(arr[i][j]>max){
                    max=arr[i][j];
                    a=i;
                    b=j;
                }
            }
        }
        System.out.print(a+" "+b);
    }
}

发表于 2020-06-02 14:24:10 回复(0)
简简单单,没有脑袋:
#include<stdio.h>
int main(){
    int n,m,a[100],i,max=0,x,y;
    while(~scanf("%d %d",&n,&m)){
        for(i=0;i<n*m;i++){
            scanf("%d",&a[i]);
            if(a[i]>max) {max=a[i];x=i/m+1;y=i%m+1;}
        }printf("%d %d\n",x,y);
    }
}


发表于 2021-06-04 18:49:26 回复(0)
能一轮搞定不搞二轮!
#include <stdio.h>
int main()
{
    int a[15][15];
    int i,j,n,m;
    scanf("%d%d",&n,&m);
    int max,ii,jj;
    for(i=0;i<n;i++){
        for(j=0;j<m;j++){
            scanf("%d",&a[i][j]);
            if(i==0&&j==0){
                max=a[i][j];
                ii=0;
                jj=0;
            }
            else if(a[i][j]>max){
                max=a[i][j];
                ii=i;
                jj=j;
            }
        }
    }
    printf("%d %d\n",ii+1,jj+1);
}


发表于 2020-04-10 18:39:17 回复(0)
#include <stdio.h>

int main(){
    int n, m, arr[10][10];
    int max = 0;
    int x, y = 0;
    scanf("%d %d", &n, &m);
    for(int i = 0; i < n; i++){
        for(int j = 0; j < m; j++){
            scanf("%d", &arr[i][j]);
            if(max < arr[i][j]){
                max = arr[i][j];                
                x = i;
                y = j;
            }        
        }
    }
    printf("%d %d", x+1, y+1);
    return 0;
}

发表于 2022-06-07 16:54:12 回复(0)
int main(){
    int n, m, n1, m1;
    int arr[10][10];
    int max = 0;
    scanf("%d %d", &n, &m);
    for(int i = 0; i < n; i++){
        for(int j = 0; j < m; j++){
            scanf("%d ", &arr[i][j]);
            if(arr[i][j] > max){
                max = arr[i][j];
                n1 = i;
                m1 = j;
            }
        }
    }
    printf("%d %d", n1+1, m1+1);
    return 0;
}

发表于 2021-12-03 11:02:43 回复(0)
#include <stdio.h>

int main() {
    int x,y,max;
    int m,n;
    m=1;n=1;
    scanf("%d %d",&x,&y);
    int arr[x][y];
    for(int i=0;i<x;i++){
        for(int j=0;j<y;j++)
        scanf("%d",&arr[i][j]);
    }
    max=arr[0][0];
    for(int i=0;i<x;i++){
        for(int j=0;j<y;j++){
            if(max<arr[i][j])
            {
                max=arr[i][j];
                m=i+1;
                n=j+1;
            }
        }
    }
    printf("%d %d",m,n);
    return 0;
}
发表于 2024-11-24 19:14:02 回复(0)
#include <stdio.h>

int main() {
    int n, m, num, max, x, y = 0;
    scanf("%d %d", &n, &m);
    for (int i = 0; i < n; i ++ ) {
        for (int j = 0; j < m; j++) {
            scanf("%d", &num);
            if (num > max) {
                max = num;
                x = i;
                y = j;
            }
        }
    }
    printf("%d %d\n",x+1,y+1);
    return 0;
}

发表于 2024-01-23 23:36:25 回复(0)
#include <stdio.h>

int main() {
int a, b;
int number = 0;
scanf("%d %d", &a, &b);
int arry[a][b];
for (int i = 0; i < a; i++) {
for (int j = 0; j < b; j++) {
scanf("%d", &number);
arry[i][j] = number;
}

}
int max = arry[0][0];
for (int i = 0; i < a; i++) {
for (int j = 0; j < b; j++) {
if (arry[i][j] > max) {
max = arry[i][j];
}
}
}
for (int i = 0; i < a; i++) {
for (int j = 0; j < b; j++) {
if (arry[i][j] == max) {
printf("%d %d\n", i+1,j+1);
}
}
}

return 0;
}   
发表于 2024-11-22 17:53:55 回复(0)
#include <stdio.h>

int main() {
    int n,m;
    scanf("%d %d",&n,&m);
    int array[n][m];
    int i,j;
    for(i=0;i<n;i++)
    {
        for(j=0;j<m;j++)
        {
            scanf("%d",&array[i][j]);
        }
    }
    int top,x,y;
    array[0][0]=top;
    for(i=0;i<n;i++)
    {
        for(j=0;j<m;j++)
        {
          if(array[i][j]>top)
          {
            top=array[i][j];
            x=i+1;
            y=j+1;
          }
        }
    }
    printf("%d %d",x,y);
    return 0;
}

发表于 2024-10-02 10:49:14 回复(0)
 
n, m = list(map(int, input().split()))
new = []
maxvale = 0
dicts = {0:0}
for i in range(1,n+1):
    arr1 = list(map(int,input().split()))
    k = list(dicts.keys())[0]
    
    if max(arr1) > maxvale:
            maxvale = max(arr1)
            dicts.pop(k)
            dicts[i]=arr1.index(max(arr1))+1
    new.append(arr1)
for k,v in dicts.items():
    print(k,v)

发表于 2024-09-28 01:29:49 回复(0)
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt(), m = in.nextInt();
        int[][] nums = new int[n][m];
        int max = 0;
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                nums[i][j] = in.nextInt();
                if (max < nums[i][j]){ //找出最大值
                    max = nums[i][j];
                }
            }
        }

        for (int i = 0; i < n; i++) {  // 打印最大值的位置
            for (int j = 0; j < m; j++) {
                if (max == nums[i][j]){
                    System.out.print((i+1) + " " + (j+1));
                    break;
                }
            }
        }
    }
}

发表于 2024-09-05 11:35:25 回复(0)
#include <stdio.h>

int main()
{
int n=0,m=0;
scanf("%d %d",&n,&m);
int i=1,j=1;
int a=0,b=0;
int x=0,y=0;
for(i=1;i<=n;++i)
{
    for(j=1;j<=m;++j)
    {
       scanf("%d",&a);
      if(a>b)
      {
        b=a;
        x=i;
        y=j;
      }

    }
}

printf("%d %d",x,y);

    return 0;
}
发表于 2024-08-27 15:57:32 回复(0)
/*适用于数据中具有身高相同的数据,包括最大身高相同的数据,输出可能具有多个坐标
#include <stdio.h>

int main() {
    int m, n;
    scanf("%d %d", &m, &n);
    int arr[m][n], maxHigh = 0;
    for (int i = 0; i < m; i++) {
        for (int j = 0; j < n; j++) {
            scanf(" %d", &arr[i][j]);
            if (maxHigh < arr[i][j]) {
                maxHigh = arr[i][j];
            }
        }
    }
    for (int i = 0; i < m; i++) {
        for (int j = 0; j < n; j++) {
            if (maxHigh == arr[i][j]) {
                printf("%d %d\n", i + 1, j + 1);
            }
        }
    }
    return 0;
}*/
//适用于身高皆不同或最大身高只有一人的情况
#include <stdio.h>

int main(){
    int m, n;
    scanf("%d %d", &m, &n);
    int arr[m][n], x = 0, y = 0;
    for (int i = 0; i < m; i++) {
        for (int j = 0; j < n; j++) {
            scanf(" %d", &arr[i][j]);
            if (arr[x][y] < arr[i][j]) {
                x = i, y = j;
            }
        }
    }
    printf("%d %d", x + 1, y + 1);
}

发表于 2024-08-17 18:14:23 回复(0)