求矩阵中的最小值,及其位置

建立1个4x5的矩阵。从键盘输入若干整数,装入矩阵将其填满。

找到矩阵中的最小值,及其位置(所在行、所在列,按自然计数法从1开始计算行列)。

将最小值和位置输出。

测试数据:

输入:96 33 97 66 68 7 74 13 78 14 47 18 82 19 52 85 86 88 90 63

输出:最小值7在第2行第1列

输入:32 1 97 34 35 3 36 40 75 44 14 15 47 48 49 82 83 87 26 27

输出:最小值1在第1行第2列

结尾无换行的

img

#include <stdio.h>
#define N 4
#define M 5
int main()
{
    int t[N][M]={0};
    int i,j;
    
    for(i=0;i<N;i++)
    {
        for(j=0;j<M;j++)
        {
            scanf("%d",&t[i][j]);
        }
    }
    printf("原数组:\n");
    for(i=0;i<N;i++)
    {
        for(j=0;j<M;j++)
        {
            printf("%d  ",t[i][j]);
        }
        printf("\n"); 
    }
    int min=t[0][0];
    int hang=1,lie=1;
    for(i=0;i<N;i++)
    {
        for(j=0;j<M;j++)
        {
            if(t[i][j]<min)
            {
                min=t[i][j];
                hang=i,lie=j;
            }
        }
    }
    
    printf("最小值%d在第%d行第%d列",min,hang+1,lie+1); 
    return 0;
}
#include <stdio.h>
#include <limits.h>

#define M 4
#define N 5

int main()
{
    int a[M][N], i, j, p, q, min = INT_MAX;
    for (i = 0; i < M; i++)
        for (j = 0; j < N; j++)
            scanf("%d", &a[i][j]);
    for (i = 0; i < M; i++)
    {
        for (j = 0; j < N; j++)
            if (a[i][j] < min)
            {
                min = a[i][j];
                p = i;
                q = j;
            }
    }
    printf("最小值%d在第%d行第%d列\n", min, p + 1, q + 1);
    return 0;
}

双循环比较大小