
因有别的事,我用别人的代码发给你,不过我运行了,可以用
// 111cpp : Defines the entry point for the console application
//
#include "stdafxh"
//
/题目:矩阵加减乘演示/
/作者:vc99 writed for c bar/
/日期:200595/
/版本:Version 11
/简介:本演示引入第三个矩阵来保存运算结果,以达到连续运算的目的。/
//
# include "stdioh"
# include "stdlibh"
# define X 3
# define Y 3
/输出数组/
void prt(int a[X][Y])
{
int i,j;
for(i=0;i<X;i++)
{
for(j=0;j<Y;j++)
printf(" %5d",a[i][j]);
printf("\n");
}
}
/输入数组/
void inp(int a[X][Y], char s)
{
int i,j,t;
for(i=0;i<Y;i++)
for(j=0;j<Y;j++)
{
printf("%c[%d][%d]=",s,i,j);/提示输入数组s的[i][j]元素 /
scanf("%d",&t);
a[i][j]=t;
}
}
/矩阵加,结果保存于m[][]/
void madd(int a[X][Y],int b[X][Y],int m[X][Y])
{
int i,j;
for(i=0;i<X;i++)
for(j=0;j<Y;j++)
m[i][j]=a[i][j]+b[i][j];/矩阵加/
prt(m);
}
/矩阵减,结果保存于m[][]/
void msub(int a[X][Y],int b[X][Y],int m[X][Y])
{
int i,j;
for(i=0;i<X;i++)
for(j=0;j<Y;j++)
m[i][j]=a[i][j]-b[i][j];/矩阵减/
prt(m);
}
/矩阵乘,结果保存于m[][]/
void mmul(int a[X][Y],int b[X][Y],int m[X][Y])
{
int i,j,k;
for(i=0;i<X;i++)
for(j=0;j<Y;j++)
m[i][j]=0;
for(i=0;i<X;i++)
for(j=0;j<Y;j++)
for(k=0;k<Y;k++)
m[i][j]+=a[i][k]b[k][j];/矩阵乘/
prt(m);
}
int main(int argc, char argv[])
{
int sel=0,agn=1,cpt=1;
int a[X][Y], b[X][Y], m[X][Y];
while(agn==1)
{
printf("请输入矩阵a!\n");
inp(a,'a');
printf("请输入矩阵b!\n");
inp(b,'b');
while (cpt==1)
{
printf("请选择矩阵运算:[1]+ [2]- [3]\n\t");
scanf("%d",&sel);
if (sel==1) madd(a,b,m);
if (sel==2) msub(a,b,m);
if (sel==3) mmul(a,b,m);
printf("重新运算?[1]是 [0]否");
scanf("%d",&cpt);
}
printf("是否重新输入矩阵?[1]是 [0]否");
scanf("%d",&agn);
}
return 0;
}
本来应该是 z=(x>>15)+y 的,
不过如果你的程序需要的话,用式2后(如:为了避免再次运算的益处,可以先除以2), 再最后的结果 再2 回来也可以的。 如果只是简单计算就是 z=(x>>15)+y
以上就是关于帮忙用C语言设计一个支持矩阵加减乘运算的程序。全部的内容,包括:帮忙用C语言设计一个支持矩阵加减乘运算的程序。、有一个DSP定点运算程序,x定标为Q15,y定标为Q0,z定标为Q0,计算z,式一是z=(x>>15)+y,式2是z=(x>>16)+y/2、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)