就算把它改成maxv=0和minv=0,我最后输出的是数组元素,跟这个毫无关系才对
第18行
num=minv=maxv;
为什么要覆盖数组元素?
我在网上找了一段代码,你看看别人是如何实现的
#include <stdio.h>
#define M 50
#define N 50
int main(void)
{
int i, j, m, n;
int max, jmax, flag, f = 1;
int a;
scanf("%d%d", &m, &n);
for(i = 0; i < m; ++i)
for(j = 0; j < n; ++j)
scanf("%d", &a);
for(i = 0; i < m; ++i)
{
max = a;
jmax = 0;
for(j = 1; j < n; ++j) // 找出i行最大的
{
if(max < a)
{
max = a;
jmax = j; // 且记录所在的列坐标
}
}
flag = 1; // 预置标志
for(j = 0; j < m && flag; ++j) // 判断max是否为所在列最小的
{
if(a < max) // 不是
flag = 0; // 则清标志
}
if(flag == 1)
{
printf("鞍点:a[%d][%d] = %d\n", i, jmax, max);
f = 0;
}
}
if(f)
printf("没有鞍点。\n");
return 0;
}
5 5
11 3 5 6 9
12 4 7 8 10
10 5 6 9 11
8 6 4 7 2
15 10 11 20 25
鞍点:a = 8
请按任意键继续. . . num=minv=maxv;根据题义 num的值应该符合行最大,列最小。而不是直接赋值,应该用迭代对该元素进行比较,符合条件才赋值 人造人 发表于 2018-1-11 15:26
第18行
num=minv=maxv;
为什么要覆盖数组元素?
对就是这个问题,我把等号左右放反了 御笔剑客 发表于 2018-1-11 16:38
对就是这个问题,我把等号左右放反了
^_^ importmath
arr=[11,3,5,6,9,
12,4,7,8,10,
10,5,6,9,11,
8,6,4,7,2,
15,10,11,20,25]
for i in range(0,5):
max = arr
number = i*5
flag = True
col = 0
row = i
for jin range(1,5):
if arr >= max:
max = arr
number = i*5+j
col = j
if j>=4:
# print("di" + str(i) +"hang zui dazhi"+ str(max))
for k in range(0,5):
ifarr >= arr:
flag = flag and True
else:
flag = flag and False
break
if flag == True:
print(str(row+1) +" " +str(col+1) + " "+ str(max))
页:
1
[2]