哈工大C语言求数组中的最小值

求数组中的最小值
题目内容:

求二维数组(小于10x10)中这样一个位置:在行上最小,在列上也最小。如果没有这样的元素则输出“没有这样的元素”。

输入格式:

"%d"

输出格式:

"a[%d][%d] is Min\n"

"There is no such element"

输入样例:

1 7 4 0 9 4 8 8 2 4

5 5 1 7 1 1 5 2 7 6

1 4 2 3 2 2 1 6 8 5

7 6 1 8 9 2 7 9 5 4

3 1 2 3 3 4 1 1 3 8

7 4 2 7 7 9 3 1 9 8

6 5 0 2 8 6 0 2 4 8

6 5 0 9 0 0 6 1 3 8

9 3 4 4 6 0 6 6 1 8

4 9 6 3 7 8 8 2 9 1

输出样例:

a[0][3] is Min

输入样例:

6 6 6 6 6 6 6 6 6 6

6 6 6 6 6 6 6 6 6 6

6 6 6 6 6 6 6 6 6 6

6 6 6 6 6 6 6 6 6 6

6 6 6 6 6 6 6 6 6 6

6 6 6 6 6 6 6 6 6 6

6 6 6 6 6 6 6 6 6 6

6 6 6 6 6 6 6 6 6 6

6 6 6 6 6 6 6 6 6 6

6 6 6 6 6 6 6 6 6 6

输出样例:

There is no such element

代码如下,如有帮助,请帮忙采纳一下,谢谢。

img

代码:

#include <stdio.h>
int main()
{
    int n,i,j,min,index,flag = 0;
    int a[10][10];
    n = 10;
    for (i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
            scanf("%d",&a[i][j]);
    }
    //逐行判断
    for (i=0;i<n;i++)
    {
        min = a[i][0];
        index =0; 
        for(j=1;j<n;j++)
        {
            if(a[i][j] < min)
            {
                index = j;
                min = a[i][j];
            }
        }
        //判断在index列是否最小
        for (j=0;j<n;j++)
        {
            if(a[j][index] < a[i][index])
                break;
        }
        if(j==n)
        {
            flag = 1;
            printf("a[%d][%d] is Min\n",i,index);
        }
        



    }
    if(flag == 0)
        printf("There is no such element");
    return 0;
}

逐行求出最小值所在列,然后判断该列最小值是否为该数