C语言之输出一个二维数组中,求每列最大的元素,并存放在另一个数组中

导读:本篇文章讲解 C语言之输出一个二维数组中,求每列最大的元素,并存放在另一个数组中,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

请编一个函数void fun(int tt[M][N],int pp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入pp所指一维数组中。二维数组中的数已在主函数中赋予。

#include<stdio.h>
void func(int arr[4][4], int pp[4])
{
	int i,j;
	for (j = 0; j < 4; j++)//本题的特殊性在于输出每列最大的元素,因此应当固定列的基础去遍历行
	{
		pp[j] = arr[0][j];//遍历不同列时,将原始数组每列第一个元素赋给目标数组
		for (i = 1; i < 4; i++)//遍历数组各行,注意行数是从1开始而不是0
		{
			if (arr[i][j] > pp[j])
				pp[j] = arr[i][j];//将每列最大的数储存在目标数组中
		}
	}
}
main()
{
	int i, j, arr[4][4],pp[4];
	printf("请输入原始数组:\n");
	for (i = 0; i < 4; i++)
	{
		for (j = 0; j < 4; j++)
			scanf_s("%d", &arr[i][j]);
	}
	func(arr, pp);
	printf("整理后的数组为:");
	for (i = 0; i < 4; i++)
	{
		printf("%d  ", pp[i]);
	}
}

在这里插入图片描述在这里插入图片描述在拿到该题时,一部分人可能会想到重新定义一个数组max[N]将每列元素的最大值存放在该数组中,如上面所示,直接使max[N]=pp[N]是不能实现两个数组中元素对应赋值,而且定义第三个变量再与pp数组建立联系明显增加了代码量,出错率也会大大提高。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/81535.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!