C语言:编写程序,计算两个3×4矩阵的和?

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-06-30
c语言编程:输入两个3行4列的矩阵,计算并输出两个矩阵的和。

#include#define ROW 3//行数#define COL 4//列数void PlusMatrix(int a[ROW][COL],int b[ROW][COL],int c[ROW][COL]){ int i,j; for(i=0;i<ROW;i++) { for(j=0;j<COL;j++) { c[i][j] = a[i][j] + b[i][j]; } }}void PrintMatrix(int a[ROW][COL]) //打印矩阵a的内容{ int i,j; for(i=0;i<ROW;i++) { for(j=0;j<COL;j++) { printf("%d ",a[i][j]); } printf("
"); }}int main(){ int a[ROW][COL],b[ROW][COL],c[ROW][COL],i,j; printf("input %d*%d matrix a:
",ROW,COL); for(i=0;i<ROW;i++) { for(j=0;j<COL;j++) { scanf("%d",&a[i][j]);//输入ROW*COL的矩阵a } } printf("input %d*%d matrix b:
",COL,ROW); for(i=0;i<ROW;i++) { for(j=0;j<COL;j++) { scanf("%d",&b[i][j]);//输入ROW*COL的矩阵b } } PlusMatrix(a,b,c);//a*b,结果存到c printf("Results:
"); PrintMatrix(c); return 0;}测试:

解题过程如下:
#include ;#include
#define L 2,#define M 3,#define N 4
}printf("
");}return;}int main(void){double A[L][M] = {{0}};
double B[M][N] = {{0}};double C[L][N] = {{0}};int i = 0, j = 0, k = 0;
printf("
Generate A[%d][%d]:
", L, M);
genArr(&A[0][0], L, M);
printMatrix(&A[0][0], L, M);
printf("
Generate B[%d][%d]:
", M, N);
{for (k = 0; k < N; ++k)
{C[i][k] = 0;for (j = 0; j < M; ++j)
{C[i][k] += A[i][j] * B[j][k];}}}printf("
Calc C[%d][%d]:
", L, N);
printMatrix(&C[0][0], L, N);return 0;}

扩展资料性质:
矩阵相乘最重要的方法是一般矩阵乘积。它只有在第一个矩阵的列数(column)和第二个矩阵的行数(row)相同时才有意义 。
一般单指矩阵乘积时,指的便是一般矩阵乘积。一个m×n的矩阵就是m×n个数排成m行n列的一个数阵。由于它把许多数据紧凑地集中到了一起,所以有时候可以简便地表示一些复杂的模型,如电力系统网络模型。
当矩阵A的列数(column)等于矩阵B的行数(row)时,A与B可以相乘。矩阵C的行数等于矩阵A的行数,C的列数等于B的列数。乘积C的第m行第n列的元素等于矩阵A的第m行的元素与矩阵B的第n列对应元素乘积之和。
当提及“矩阵相乘”或者“矩阵乘法”的时候,并不是指代这些特殊的乘积形式,而是定义中所描述的矩阵乘法。在描述这些特殊乘积时,使用这些运算的专用名称和符号来避免表述歧义。
把给定的图转为邻接矩阵,即A(i,j)=1当且仅当存在一条边i->j。令C=A*A,那么C(i,j)=ΣA(i,k)*A(k,j),实际上就等于从点i到点j恰好经过2条边的路径数(枚举k为中转点)。
类似地,C*A的第i行第j列就表示从i到j经过3条边的路径数。同理,如果要求经过k步的路径数,只需要二分求出A^k即可。

#include<stdio.h>

int main()

{

int a[3][4],b[3][4],c[3][4];

for(int i=0;i<3;i++)

for(int j=0;j<4;j++)

scanf("%d",&a[i][j]);

printf("
");

for(int i=0;i<3;i++)

for(int j=0;j<4;j++)

scanf("%d",&b[i][j]);

printf("
");

for(int i=0;i<3;i++)

for(int j=0;j<4;j++)

{

c[i][j]=a[i][j]+b[i][j];

printf("%d",c[i][j]);

if(j!=3)

printf(" ");

else

printf("
");

}

return 0;

}



  • C语言:编写程序,计算两个3×4矩阵的和?
    答:int a[3][4],b[3][4],c[3][4];for(int i=0;i<3;i++)for(int j=0;j<4;j++)scanf("%d",&a[i][j]);printf("\n");for(int i=0;i<3;i++)for(int j=0;j<4;j++)scanf("%d",&b[i][j]);printf("\n");for(int i=0;i<3;i++)for(int j=0;j<4;j++...
  • C语言:编写程序,计算两个3×4矩阵的和?
    答:int main(){ int i,j,a[3][4],b[3][4],c[3][4];for(i=0; i<3; i++)for(j=0; j<4; j++)scanf("%d",&a[i][j]);for(i=0; i<3; i++)for(j=0; j<4; j++)scanf("%d",&b[i][j]);for(i=0; i<3; i++)for(j=0; j<4; j++)c[i][j]=a[i]...
  • 编写一个程序计算两个3*4阶矩阵相加,并打印出结果。
    答:#define N1 3//矩阵行数 #define N2 4//矩阵列数 int a[N1][N2], b[N1][N2];int main(){ void plus(int a[N1][N2],int b[N1][N2]);//矩阵相加 void print(int a[N1][N2]);//打印矩阵 void input(int c[N1][N2]);//输入矩阵 printf("请输入A矩阵的数值:\n"); input(a); ...
  • c语言求2个3x4的矩阵之和
    答:这个程序定义了两个3x4的矩阵matrix1和matrix2,并计算它们的和存储在sum矩阵中。最后,程序输出sum矩阵。在程序中,使用了两个循环嵌套来遍历矩阵中的每个元素,将两个矩阵的对应元素相加,并将结果存储在sum矩阵中。然后,使用另外两个循环嵌套来遍历sum矩阵,将其逐行输出。以上代码可以用于计算任意大小...
  • c语言编程:输入两个3行4列的矩阵,计算并输出两个矩阵的和。
    答:include<stdio.h>#define ROW 3//行数#define COL 4//列数void PlusMatrix(int a[ROW][COL],int b[ROW][COL],int c[ROW][COL]){ int i,j; for(i=0;i<ROW;i++) { for(j=0;j<COL;j++) { c[i][j] = a[i][j] + b[i][j]; } }}void PrintMatrix(int a...
  • 输出两个3*4阶矩阵的和并输出结果C语言编程
    答:int i,j;int k=1;int a[3][4],b[3][4],c[3][4];for(i=0;i<3;i++){ for(j=0;j<4;j++){ a[i][j]=k;b[i][j]=k;k++;} } for(i=0;i<3;i++){ for(j=0;j<4;j++){ c[i][j]=a[i][j]+b[i][j];printf("%4d",c[i][j]);} printf("\n");...
  • 两个3行4列的矩阵相加 c语言
    答:void main(){ int a[3][4],b[3][4],c[3][4],i,j;printf("please input a array:\n");for(i=0;i<3;i++){ for(j=0;j<4;j++){ scanf("%d",&a[i][j]);} } printf("please input b array:\n");for(i=0;i<3;i++){ for(j=0;j<4;j++){ scanf("%d",&...
  • 如何用C语言编写程序求矩阵的值
    答://定义矩阵1、2为输入数据矩阵,3为乘积后的矩阵 int cJuZhen1[4][3],cJuZhen2[3][2],cJuZhen3[4][2];//定义两个指针*p1,*p2分别指向矩阵1、2 int *p1,*p2,i,j;p1=&cJuZhen1[0][0];p2=&cJuZhen2[0][0];//输入矩阵1的数据 printf("请输入4*3的矩阵A: \n");for(i...
  • C语言编程求出3×4矩阵中的最大值与最小值及其所在行和列。
    答:include "time.h"main(){ int i,j,*p,arry[3][4];p=arry[0];srand((unsigned)time(NULL));for (i=0;i<3;i++){ for (j=0;j<4;j++){ arry[i][j] = rand()%100+1;} } printf("\n ---");while(*p){ printf("%d ",*p);p++;} printf("\n ---");for (i=0...
  • 用c语言编写输出3*4的矩阵,求最后一个最小值并显示行号和列号?_百度...
    答:int main() { const unsigned row=3, col=4;//定义行列数 unsigned minx, miny;//最小值的行列 int min;//最小值 int nums[row][col];for (unsigned i = 0; i < row; i++)//录入数据 { for (unsigned j = 0; j < col; j++){ scanf("%d",&nums[i][j]);} } ...