求数组中的最小值
题目内容:
求二维数组(小于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
代码如下,如有帮助,请帮忙采纳一下,谢谢。
代码:
#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;
}
逐行求出最小值所在列,然后判断该列最小值是否为该数