编程题#5:异常细胞检测
来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)
注意: 总时间限制: 1000ms 内存限制: 65536kB
描述
我们拍摄的一张CT照片用一个二维数组来存储,假设数组中的每个点代表一个细胞。每个细胞的颜色用0到255之间(包括0和255)的一个整数表示。我们定义一个细胞是异常细胞,如果这个细胞的颜色值比它上下左右4个细胞的颜色值都小50以上(包括50)。数组边缘上的细胞我们不检测。现在我们的任务是,给定一个存储CT照片的二维数组,写程序统计照片中异常细胞的数目。
输入
第一行包含一个整数N(100>=N>2).
下面有 N 行,每行有 N 个0~255之间的整数,整数之间用空格隔开。
输出
输出只有一行,包含一个整数,为异常细胞的数目。
样例输入
4 70 70 70 70 70 10 70 70 70 70 20 70 70 70 70 70
样例输出
2
#include<iostream>
using namespace std;
int main() {
int n;
int count=0;
cin >> n;
cin.get();
int numbers[100][100];
for (int i = 0; i < n; i++) {
for (int j = 0; j <n;j++){
cin >> numbers[i][j];
}
}
for (int i = 0; i < n; i++) {
if (i == 0 || i == n - 1)
continue;//如果是边上的,直接跳过就好了
else {
for (int j = 0; j < n; j++) {
if (j == 0 || j == n - 1)
continue;
else if (((numbers[i + 1][j] - numbers[i][j] >= 50) && (numbers[i][j + 1] - numbers[i][j] >= 50) && (numbers[i - 1][j] - numbers[i][j] >= 50) && (numbers[i][j - 1] - numbers[i][j] >&#