#include iostream #include fstream//即写入、读出的时候要用到这个头文件 #include string #include //标准库头文件 #define num 128//网格数据大小 using namespace std;
bool isPeak(int grid[num][num],int r, int c); void extremes(int grid[num][num], int nrows, int ncols);
int main (void){ int nrows,ncols;//行,列 int map[num][num]; string filename;//文件名 ifstream file;//建立一个文件流对象
cout<<"请输入文件名:\n"; cin>>filename; //c_str是string类的一个函数可以把string类型变量转换成char*变量open()要求的是一个char*字符串 file.open(filename.c_str()); /*EOF是baiEnd Of File 的缩写表示“文件结束”。 从输入流读取数据如果到达文件末尾遇到文件结束符eof函数值为非零值表示真如果未到文件结尾则为0表示假。 eof 函数用来判断是否到达文件结尾 fail()用来判断一个流是否“坏”掉了。如果failbit、badbit中任意一种或两种被设置则fail()返回true否则返回false 调用方式cin.fail();*/ if(file.fail()){ cout<<"打开文件出错.\n"; exit(1);
}
file>>nrows>>ncols;
if(nrows > num || ncols > num ){ cout<<"网格太大,调整程序.\n"; exit(1);
} //从数据文件读数据到数组 for(int i0; i
} //判断并打印峰值位置 for(int i1; i } } } extremes(map, nrows, ncols); //关闭文件 file.close(); system("pause"); return 0; } //grid 网格 bool isPeak(int grid[num][num],int r, int c){ //八个位置峰点的判断 if((grid[r][c] > grid[r-1][c])1][c])1]) 1][c 1]) 1]) 1][c -1])){ return true; }else{ return false; } } void extremes(int grid[num][num], int row, int column){ int max grid[0][0]; int min grid[0][0]; for (int r 0; r if (max