n行m列矩阵

描述

输入NxM矩阵,矩阵元素均为整数,计算其中大于零的元素之和。

输入描述:

第一行为N M(N: 矩阵行数;M: 矩阵列数,且M,N<=10),接下来的N行为矩阵各行。

输出描述:

一行,其中大于零的元素之和。

示例1

输入:

3 3
2 3 4
-5 -9 -7
0 8 -4

输出:

17
#include<stdio.h>
int main()
{
	int n=0;int m=0;
	int num=0,sum=0;
	scanf("%d %d",&n,&m);
	//获取n行m列的矩阵
	int i=0;
	for(i=0;i<n;i++)
	{
		int j=0;
		for(j=0;j<m;j++)
		{
			scanf("%d",&num);
			if(num>0)
		    sum+=num;
		}
	 } 
	 printf("%d",sum);
	return 0;
}

可以使用一个辅助矩阵来存储旋转后的结果,具体步骤如下: 1. 创建一个nm的辅助矩阵,并将所有元素初始化为0。 2. 定义四个变量,分别表示当前旋转的起始以及结束,初始值为0和m-1和n-1和0。 3. 从左到右遍历第一,将原矩阵的元素依次赋值给辅助矩阵的第一元素。 4. 将结束的值减1,表示第一已经遍历完毕,下一次遍历将从第二开始。 5. 从上到下遍历最后一,将原矩阵的元素依次赋值给辅助矩阵的最后一元素。 6. 将结束的值减1,表示最后一已经遍历完毕,下一次遍历将从倒数第二开始。 7. 如果当前的起始小于等于结束,继续从右到左遍历最后一,将原矩阵的元素依次赋值给辅助矩阵的倒数第一元素。 8. 将结束的值减1,表示最后一已经遍历完毕,下一次遍历将从倒数第二开始。 9. 如果当前的起始小于等于结束,继续从下到上遍历第一,将原矩阵的元素依次赋值给辅助矩阵的第一元素。 10. 将起始的值加1,表示第一已经遍历完毕,下一次遍历将从第二开始。 11. 重复步骤3到步骤10,直到辅助矩阵的所有元素都被赋值为止。 12. 将辅助矩阵输出即可。 下面是一个Python实现的示例代码: ```python def rotate_matrix(matrix): n, m = len(matrix), len(matrix[0]) result = [[0] * m for _ in range(n)] start_row, end_row, start_col, end_col = 0, n - 1, 0, m - 1 while start_row <= end_row and start_col <= end_col: # Traverse from left to right for j in range(start_col, end_col + 1): result[start_row][j] = matrix[start_row][j] start_row += 1 # Traverse from top to bottom for i in range(start_row, end_row + 1): result[i][end_col] = matrix[i][end_col] end_col -= 1 # Traverse from right to left if start_row <= end_row: for j in range(end_col, start_col - 1, -1): result[end_row][j] = matrix[end_row][j] end_row -= 1 # Traverse from bottom to top if start_col <= end_col: for i in range(end_row, start_row - 1, -1): result[i][start_col] = matrix[i][start_col] start_col += 1 return result # Example usage matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] rotated_matrix = rotate_matrix(matrix) print(rotated_matrix) # Output: [[7, 4, 1], [8, 5, 2], [9, 6, 3]] ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值