【描述】
拍摄的一张CT照片用一个二维数组来存储,假设数组中的每个点代表一个细胞。每个细胞的颜色用0到255之间(包括0和255)的一个整数表示。定义一个细胞是异常细胞,如果这个细胞的颜色值比它上下左右4个细胞的颜色值都小50以上(包括50)。数组边缘上的细胞不检测。现在的任务是,给定一个存储CT照片的二维数组,写程序统计照片中异常细胞的数目。
【输入】
第一行包含一个整数n(2﹤n≤100)。
下面有n行,每行有n个0~255之间的整数,整数以空格间隔。
【输出】
输出一个整数,即异常细胞的数目。
【输入示例】
4
70 70 7070
70 10 7070
70 70 2070
70 70 7070
【输出示例】
2
【C代码】
---------------
#include<stdio.h>
#include<stdlib.h>
intmain() {
int array[100][100];
int i, j, n;
int count, left, right, top, bottom;
scanf("%d", &n);
for(i = 0; i < n; ++i) {
for(j = 0; j < n; ++j) {
scanf("%d",&array[i][j]);
}
}
count = 0;
for(i = 1; i < n - 1; ++i) {
for(j = 1; j < n - 1; ++j) {
int left = abs(array[i][j] -array[i][j - 1]) >= 50;
int right = abs(array[i][j] -array[i][j + 1]) >= 50;
int top = abs(array[i][j] - array[i- 1][j]) >= 50;
int bottom = abs(array[i][j] -array[i + 1][j]) >= 50;
if(left && right &&top && bottom)
++count;
}
}
printf("%d\n", count);
return 0;
}