C语言 A22—求3*5矩阵每行最大值,并输出矩阵和最大值

C语言 A22—求3*5矩阵每行最大值,并输出矩阵和最大值

题目:求一个3*5的矩阵各行元素的最大值,将原矩阵和求出的最大值全部输出。
#include<stdio.h>

int main(void)

{
int sum[3][5],num[3];//定义两个数组,一个存放矩阵元素,一个存放最大值
printf("please input 15 element:\n");
for(int i=0;i<3;i++)
{
	for(int j=0;j<5;j++)
	{
		scanf("%d",*(sum+i)+j);//用指针作循环输入
	}
}
for(int i=0;i<3;i++)
{
	*(num+i)=*(*(sum+i));
	for(int j=0;j<5;j++)
	{
		printf("%4d",*(*(sum+i)+j));//打印矩阵
		if(*(num+i)<*(*(sum+i)+j))
			*(num+i)=*(*(sum+i)+j);//遍历,找出最大值
	}
	printf("\n");
}
for(int i=0;i<3;i++)
{
    printf("The max of the %dline is:%d\n",i+1,*(num+i));//打印最大值
}		
return 0;
}

printf("%4d",((sum+i)+j));//打印矩阵-这一句只是为了让矩阵打印出来对齐更好看

### 回答1: 以下是一个 Python3 实现: ```python matrix = [] for i in range(3): row = list(map(int, input().split())) matrix.append(row) row_sums = [sum(row) for row in matrix] col_sums = [sum(col) for col in zip(*matrix)] diag_sums = [sum(matrix[i][i] for i in range(3)), sum(matrix[i][2-i] for i in range(3))] max_sum = max(row_sums + col_sums + diag_sums) print(max_sum) ``` 输入格式为一9个整数,可以使用 `input()` 函数读取。首先将输入的数字按照33的方式存储在 `matrix` 中。然后使用表推导式求出每行、每以及对角线的和,分别存储在 `row_sums`、`col_sums` 和 `diag_sums` 中。使用 `zip()` 函数可以方便地将矩阵转换为和。 最后将所有和的最大值取出并输出即可。 ### 回答2: 对于一个3*3矩阵,我们可以先求出每行、每和以及两条对角线的和,然后找出其中的最大值。 假设输入的矩阵为: a11 a12 a13 a21 a22 a23 a31 a32 a33 首先,我们可以计算每行和: row1_sum = a11 + a12 + a13 row2_sum = a21 + a22 + a23 row3_sum = a31 + a32 + a33 然后,计算每和: col1_sum = a11 + a21 + a31 col2_sum = a12 + a22 + a32 col3_sum = a13 + a23 + a33 再计算两条对角线的和: diag1_sum = a11 + a22 + a33 diag2_sum = a13 + a22 + a31 最后,我们可以找出这些和中的最大值: max_sum = max(row1_sum, row2_sum, row3_sum, col1_sum, col2_sum, col3_sum, diag1_sum, diag2_sum) 输出结果为 max_sum。 ### 回答3: 要矩阵每行、每及对角线和的最大值,可以按照以下步骤进解: 1. 读取输入的9个整数,并将它们依次填入3*3矩阵。 2. 对每一和,得到三个和。 3. 对每一和,得到三个和。 4. 对两个对角线进和,得到两个对角线的和。 5. 比较三个和、三个和以及两个对角线的和,找到其中的最大值。 6. 输出最大值。 以下是相应的代码实现: ```python # 读取输入 nums = input().split() matrix = [] for i in range(0, 9, 3): matrix.append(nums[i:i+3]) # 将字符串转换为整数 for i in range(3): matrix[i] = [int(x) for x in matrix[i]] # 计算和 row_sum = [sum(row) for row in matrix] # 计算和 col_sum = [sum(col) for col in zip(*matrix)] # 计算对角线和 diag_sum1 = matrix[0][0] + matrix[1][1] + matrix[2][2] diag_sum2 = matrix[0][2] + matrix[1][1] + matrix[2][0] # 最大值 max_sum = max(max(row_sum), max(col_sum), diag_sum1, diag_sum2) # 输出最大值 print(max_sum) ``` 以上代码可实现对3*3矩阵每行、每及对角线和的最大值解和输出
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值