一个矩阵求积程序,网上没有的
我觉得不管学什么,他的最终目的都是为了应用,学编程更是如此。我学习c语言时间不长,技术并不是很高,我觉得有收获就得拿出来,不能藏着,下面就是我编的一个矩阵求积的程序的源代码,我自己觉得比网上的要好,呵呵,是不是有点自恋。实现很简单,但还是能给新手一些启发,而且我想告诉大家的并不是这个程序本身,而是想说大家都应该想一想学习中遇到的任何问题能不能自己编个程序解决,因为在这个论坛的都在学编程嘛。在vc++中通过。有什么问题,希望大家不吝赐教。#include<stdio.h>
#define Maxsize 200
struct Matrix
{
int a[Maxsize];
int m,n;
};
main()
{
int i,j,k,l=0;
int sum=0;
struct Matrix b1,b2,b3;
printf("请输入第一个矩阵行数和列数:\n");
scanf("%d%d",&b1.m,&b1.n);
printf("请依次输入矩阵的所有元素:\n");
for(i=0;i<b1.m*b1.n;i++)
scanf("%d",&b1.a[i]);
printf("请输入第二个矩阵行数和列数:\n");
scanf("%d%d",&b2.m,&b2.n);
printf("请依次输入矩阵的所有元素:\n");
for(i=0;i<b2.m*b2.n;i++)
scanf("%d",&b2.a[i]);
if(b1.n!=b2.m) printf("这两个矩阵不能进行乘法运算!\n");
else
{
for(i=1;i<=b1.m;i++)
for(k=1;k<=b2.n;k++)
{
for(j=1;j<=b1.n;j++)
sum=sum+b1.a[(i-1)*b1.n+j-1]*b2.a[(j-1)*b2.n+k-1];
b3.a[l++]=sum;
sum=0;
}
b3.m=b1.m;
b3.n=b2.n;
printf("输入的第一个矩阵是:\n");
for(i=0;i<b1.m*b1.n;i++)
{
if((i+1)%b1.n==0) printf("%d \n",b1.a[i]);
else printf("%d ",b1.a[i]);
}
printf("输入的第二个矩阵是:\n");
for(i=0;i<b2.m*b2.n;i++)
{
if((i+1)%b2.n==0) printf("%d \n",b2.a[i]);
else printf("%d ",b2.a[i]);
}
printf("所求矩阵为:\n");
for(i=0;i<b3.m*b3.n;i++)
{
if((i+1)%b3.n==0) printf("%d \n",b3.a[i]);
else printf("%d ",b3.a[i]);
}
}
}
来源: http://www.
矩阵求积程序完善版.rar
(31.64 KB)