C //例 7.13 有一个3*4的矩阵,求所有元素中的最大值。

C程序设计 (第四版) 谭浩强 例 7.13

例 7.13 有一个3*4的矩阵,求所有元素中的最大值。

IDE工具:VS2010
Note: 使用不同的IDE工具可能有部分差异。
代码块
方法:使用指针、动态分配内存
c 复制代码
#include <stdio.h>
#include <stdlib.h>

#define M 3
#define N 4

void initialMatrix(int ***matrix, int m, int n){
	*matrix = (int**)malloc(m * sizeof(int*));
	for(int i = 0; i < m; i++){
		(*matrix)[i] = (int*)malloc(n * sizeof(int));
	}
}

void inputMatrix(int **matrix, int m, int n){
	printf("Enter %d*%d matrix:\n", m, n);
	for(int i = 0; i < m; i++){
		for(int j = 0; j < n; j++){
			scanf("%d", &matrix[i][j]);
		}
	}
}

int max(int **matrix, int m, int n){
	int max = matrix[0][0];
	for(int i = 0; i < m; i++){
		for(int j = 0; j < n; j++){
			if(matrix[i][j] > max){
				max = matrix[i][j];
			}
		}
	}
	return max;
}

void outputMatrix(int **matrix, int m, int n, int max(int **, int, int)){
	printf("Max Value in the matrix is %d\n", max(matrix, m, n));
}

void freeMatrix(int ***matrix, int m){
	for(int i = 0; i < m; i++){
		free((*matrix)[i]);
	}
	free(*matrix);
}

int main(){
	int **matrix = NULL;

	initialMatrix(&matrix, M, N);
	inputMatrix(matrix, M, N);
	outputMatrix(matrix, M, N, max);
	freeMatrix(&matrix, M);

	system("pause");
	return 0;
}
相关推荐
USB_ABC17 小时前
济南航天五院:高清数字矩阵赋能卫星研发数据可视化精准管控
矩阵·音视频
ward RINL17 小时前
# GPT-5.6-sol vs GPT-5.5 新题实测:非弹性碰撞物理题和稳定路由算法
网络·gpt·算法
灯澜忆梦17 小时前
【dp_1】爬楼梯 | 斐波那契数 | 第 N 个泰波那契数 | 三步问题
算法·golang
星释17 小时前
鸿蒙智能体开发实战:35.鸿蒙壁纸大师 - 调用火山引擎模型生成壁纸
算法·华为·ai·harmonyos·鸿蒙·火山引擎
geovindu17 小时前
go: Floyd-Warshall Algorithms
开发语言·后端·算法·golang
db_murphy17 小时前
机器学习决策树的基尼系数是个啥?
学习·算法
2301_8002561117 小时前
数据结构基础hw9判断选择题、hw7编程题、hw12编程题
数据结构·算法
拳里剑气17 小时前
C++算法:优先级队列
开发语言·c++·算法·优先级队列
Turbo正则18 小时前
机器学习入门笔记 | 基础算法及其应用场景
笔记·算法·机器学习