二维数组小练习

从文件读取整数数据判断峰值

二维数组小练习_第1张图片

#include 
#include 
#include //使用文件函数需要包含的头文件
using namespace std;
#define N 128
//定义一个函数获取他是否为峰值
bool isPeek(int map[N][N],int i,int j) {
	if (map[i][j] > map[i - 1][j] &&
		map[i][j] > map[i + 1][j] &&
		map[i][j] > map[i][j - 1]&&
		map[i][j]>map[i][j+1]) {
		return true;
	}
	return false;
}
int main(void) {
	//预先定义一个数组
	int map[N][N] = { 0 };
	string name;
	int rows, cols;
	//保存文件第一行的数据作为行和列
	//输入需要检测的文件名
	cout << "请输入需要检测的文件名:" << endl;
	cin >> name;
	ifstream file;
	//打开文件
	file.open(name);
	if (file.fail()) {
		cout << "file open error!" << endl;
			exit(1);
	}
	file >> rows >> cols;

	for (int i = 0; i < rows; i++){
		for (int j = 0; j < cols; j++) {
			file >> map[i][j];
			cout << map[i][j] << " ";
		}
		cout << endl;
	}
	for (int i = 1; i < rows; i++) {
		for (int j = 1; j < cols; j++) {
			if (isPeek(map, i, j)) {
				cout << "该处的峰值为第" << i+1 << "行,第" << j+1 << "列" << endl;
			}
		}
	}

	return 0;
}

杨辉三角形:根据用户输入的行数,打印对应的行数的杨辉三角

二维数组小练习_第2张图片

#include 
#include 
using namespace std;

#define N 64
//打印杨辉三角
void out(int a[N][N] ,int n=5) {
	for (int i = 0; i < n; i++){
		cout << setw((n - i) * 2) << a[i][0];
		for (int j = 1; j <=i ; j++){
			
			cout<< setw(4) << a[i][j];
		}
		cout << endl;
	}
}

int main(void) {
	int n;
	int a[N][N] = {0};

	cout << "请输入需要显示的行数:" << endl;
	cin >> n;
	//赋值
	for (int i = 0; i < n; i++){
		for (int j = 0; j <= i; j++) {
			
			if (j == 0 || i == j) {
				a[i][j] = 1;
			}else {
				a[i][j] = a[i - 1][j] + a[i - 1][j - 1];
			}
		}
	}
	out(a, n);
	return 0;
}

你可能感兴趣的:(c++,visual,studio)