今天做了一个关于矩阵乘法的程序,虽然说编程的思想比较好理解,但是也确实遇到了一些麻烦。
#include <stdio.h> int main() { int a[2][3],b[3][4];//定义两个矩阵,一会儿我们将它们相乘. int c[2][4]={0};//这里保存的结果矩阵,注意,要初始化为0.也可以这样写int c[2][4]={{0,0,0,0},{0,0,0,0}}; int i,j,k; printf("Please input a 2*3 matrix:\n"); for(i=0;i<2;i++) { for(j=0;j<3;j++) { scanf("%d", *(a+i)+j);//输入第一个矩阵。这里注意,一个星号的表示地址 } } printf("Please input a 3*4 matrix:\n"); for(i=0;i<3;i++) { for(j=0;j<4;j++) { scanf("%d", *(b+i)+j));//输入第一个矩阵。 } } printf("Starting to calculate:\n"); for(i=0;i<2;i++) { for(k=0;k<3;k++) { for(j=0;j<4;j++) { c[i][j]=c[i][j]+a[i][k]*b[k][j];//矩阵乘法的计算。注意,第一个矩阵的列数要和第二个矩阵的行数一致 } } } printf("The result is:\n"); for(i=0;i<2;i++) { for(j=0;j<4;j++) { printf("%d ", *(*(c+i)+j);//两个星号的表示二维数组的内容 // printf("%d ",c[i][j]);//我们也可以用这种形式进行二维数组的输出 } printf("\n"); } printf("\n"); return 0; }