写这题写了有两个小时了,还是所有测试点段错误,哪里有问题啊,希望哪位大佬看到了给我指点指点,感激不尽!!
#include<stdio.h>
int yanse[1010][1010];
int main()
{
int M, N, TOL;
scanf("%d %d %d", &M, &N, &TOL);
for (int i = 0; i < N; i++) {
for (int j = 0; j < M; j++) {
scanf("%d", &yanse[i][j]);
}
}
int a, b, count = 0;
for (int i = 0; i < N; i++) {
for (int j = 0; j < M; j++) {
if (((yanse[i][j] - yanse[i - 1][j - 1]) > TOL || (yanse[i - 1][j - 1] - yanse[i][j]) > TOL || (i < 1 || j < 1))
&& ((yanse[i][j] - yanse[i - 1][j]) > TOL || (yanse[i - 1][j] - yanse[i][j]) > TOL || (i < 1))
&& ((yanse[i][j] - yanse[i - 1][j + 1]) > TOL || (yanse[i - 1][j + 1] - yanse[i][j]) > TOL || (i < 1 || j == M - 1))
&& ((yanse[i][j] - yanse[i][j - 1]) > TOL || (yanse[i][j - 1] - yanse[i][j]) > TOL || (j < 1))
&& ((yanse[i][j] - yanse[i][j + 1]) > TOL || (yanse[i][j + 1] - yanse[i][j]) > TOL || (j == M - 1))
&& ((yanse[i][j] - yanse[i + 1][j - 1]) > TOL || (yanse[i + 1][j - 1] - yanse[i][j]) || (i == N - 1 || j < 1))
&& ((yanse[i][j] - yanse[i + 1][j]) > TOL || (yanse[i + 1][j] - yanse[i][j]) > TOL || (i == N - 1))
&& ((yanse[i][j] - yanse[i + 1][j + 1]) > TOL || (yanse[i + 1][j + 1] - yanse[i][j]) > TOL || (i == N - 1 || j == M - 1))) {
int biaozhi = 0;
int i2,j2;
for ( i2 = 0; i2 < N; i2++) {
for ( j2 = 0; j2 < M; j2++) {
if ((i != i2 || j != j2) && yanse[i][j] == yanse[i2][j2]) {
biaozhi = 1;
break;
}
}
if (biaozhi == 1)break;
}
if (biaozhi == 0) {
a = i;
b = j;
count++;
if (count > 1) {
printf("Not Unique");
break;
}
}
}
}
if (count > 1) break;
}
if (count == 1)printf("(%d, %d) : %d", b + 1, a + 1, yanse[a][b]);
else if (count == 0)printf("Not Exist");
}
//第一次 输入不进去数 原来把一个很大的数组在函数里面定义时会发生这样的情况,把大数组在函数外定义为全局变量就可以了
//一直忽略了题目所说的独一无二颜色的那个点, 只有一个点是该数值
//改了改在提交上去 全部都是段错误