多重循环 + 指针训练

可用于任意矩阵的 矩阵乘法函数

#include <stdio.h>
void multimatrix(int m, int s, int n, int *p1, int *p2)
{
	int i, k, j;
	int x = 0;
    int c[m][n];
    
    	for(i = 0; i < m; i++)
       	    for(j = 0; j < n; j++)
       	        {
				   for(x = 0,k = 0; k < s; k++ )/*warning:x重置0的位置*/ 
				      
					   x += (*(p1 + s * i + k)) * (*(p2 + n * k + j));
			           c[i][j] = x; 
			    }                               /*warning:多重循环时怎么加括号*/ 
			   
	for(i = 0; i < m; i++)
	{
	   for(j = 0; j < n; j++)
	       printf("%4d",c[i][j]); 
		putchar('\n');
	}
	
}
int main()
{
	int a[2][4] = {{1, 2, 3, 4}, {1, 3, 4, 5}};
	int b[4][3] = {{1, 2, 3}, {1 ,2 , 3}, {1, 3, 2}, {1, 5, 6}};
	multimatrix(2, 4, 3, &a[0][0], &b[0][0]);
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值