网站建设资讯

NEWS

网站建设资讯

矩阵加法函数c语言程序,c语言加法运算函数

求c语言矩阵加法和乘法代码

#includestdio.h

创新互联2013年开创至今,公司以成都网站设计、成都网站建设、外贸网站建设、系统开发、网络推广、文化传媒、企业宣传、平面广告设计等为主要业务,适用行业近百种。服务企业客户成百上千家,涉及国内多个省份客户。拥有多年网站建设开发经验。为企业提供专业的网站建设、创意设计、宣传推广等服务。 通过专业的设计、独特的风格,为不同客户提供各种风格的特色服务。

#includestdlib.h

void memory(int **p,int m,int n); //分配的内存的函数;

void readdata(int**p,int m,int n);

void plus(int **u,int **i,int m,int n); //求和函数,要求两个矩阵同型

void redu(int **u,int **i,int m,int n); //求差,要求两个矩阵同型

void mult(int **u,int **i,int m,int n); //矩阵的积;乘法要求前一个矩阵的行数等于后一个矩阵的列数;

void release(int **p,int m,int n); //释放内存的函数;

int main() //也可使用switch语句来选择求和求差求积

{

int m,n;

scanf("%d%d",m,n); //输入m,n两个数,确定矩阵要分配内存的大小

int **k,**q,**o;

memory(**k,m,n);

memory(**q,m,n);

memory(**o,m,n); //备用,用来存放结果的一块内存;

readdata(**k,m,n);

readdata(**q,m,n);

plus(**k,**q,m,n);

redu(**k,**q,m,n);

mult(**k,**q,m,n); //在本行加//则可不求矩阵乘法,使程序适用于一切m*n的矩阵加法;

realease(**k,m,n);

realease(**q,m,n);

}

void memory(int **p,int m,int n)

{

p=*(int**)malloc(m*sizeof(int*);

for(i=0;in;i++)

{

p[i]=*(int*)malloc(n*sizeof(int));

}

}

void release(int **p,int m,int n)

{

for(i=0;in;i++)

{

free(p[i]);

p[i]=0;

}

free(p);

p=0;

}

void readdata(int **p,int m,int n)

{

int i,j;

for(i=0;im;i++)

{

for(j=0;jn;j++)

scanf("%d",p[i][j]); //要求用户由行到列输入矩阵的数据;

}

}

void plus(int **u,int **i,int m,int n)

{

int r,j;

for(r=0;rm;r++)

{

for(j=0;jn;j++)

printf("%5d",u[r][j]+i[r][j]);

printf("\n");

}

}

void redu(int **u,int **i,int m,int n)

{

int r,j;

for(r=0;rm;r++)

{

for(j=0;jn;j++)

printf("%5d",u[r][j]-i[r][j]);

printf("\n");

}

void mult(int **u,int **i,int m,int n)

{

int r,j,k,d=0;

for(r=0;rm;r++)

{

for(j=0;jn;j++)

{

for(k=0;km;k++) //这里分号错写成了逗号

d=d+u[r][k]*i[k][r];

printf("%d",d);

}

d=0;

printf("\n");

}

}

c语言矩阵的加法

#include stdio.h

#include ctype.h

#define MAX_STR_LEN 100

int strToInt(char s[],int base) {

int i = 0,result = 0,sign = 1;

if(s[i] == '+') { sign = 1; ++i; }

else if(s[i] == '-') { sign = -1; ++i; }

if(base  10) { // 数基在10以上时

while(s[i]) {

if(islower(s[i])) result = base * result + s[i] - 'a' + 10;

else if(isupper(s[i])) result = base * result + s[i] - 'A' + 10;

else if(isdigit(s[i])) result = base * result + s[i] - '0';

++i;

}

}

else { // 数基为 0 -- 10 时

while(s[i]) {

if(isdigit(s[i])  (s[i] - '0'  base))

result = base * result + s[i] - '0';

++i;

}

}

return sign * result;

}

int main() {

int base; 

char s[MAX_STR_LEN]; 

while( (scanf("%d:", base) != EOF)  (gets(s) != NULL) )

printf("%d\n", strToInt(s, base)); 

return 0; 

}

c语言程序设计 矩阵加法

#includestdio.h

void main()

{

int a[15][15],i,j,k,t,b;

printf("请输入一个3行3列的矩阵:\n");

/*for(i=0;i3;i++)

for(j=0;j3;j++)

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

printf("请输入另一个3行3列的矩阵\n");

for(k=0;k3;k++)

for(t=0;t3;t++)

scanf("%d",a[k][t]);*///----此处覆盖掉了矩阵1;

for(i=0;i3;i++)

for(j=0;j3;j++)

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

printf("请输入另一个3行3列的矩阵\n");

for(k=0;k3;k++)

for(t=0;t3;t++)

scanf("%d",a[k+3][t+3]);

printf("矩阵【1】\n");

for(i=0;i3;i++){

for(j=0;j3;j++)

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

printf("\n");

}

printf("矩阵【2】\n");

for(i=0;i3;i++){

for(j=0;j3;j++)

printf("%d ",a[i+3][j+3]);

printf("\n");

}

printf("请选择要进行的运算:1 相加 2 相乘\n");

scanf("%d",b);

//----------楼主此处以下的四个for一一嵌套算出来的结果没什么意义。

if(b==1)

{

printf("相加:\n");

for(i=0;i3;i++)

for(j=0;j3;j++)

a[i][j]=a[i][j]+a[i+3][j+3];

for(i=0;i3;i++){

for(j=0;j3;j++)

printf("%d\t",a[i][j]);

printf("\n");}

}

if(b==2)

{

printf("相乘:\n");

for(i=0;i3;i++)

for(j=0;j3;j++)

a[i+6][j+6] = a[i][0]*a[3][j+3] + a[i][1]*a[4][j+3] + a[i][2]*a[5][j+3];

for(i=0;i3;i++){

for(j=0;j3;j++)

printf("%d\t",a[i+6][j+6]);

printf("\n");

}

}

}

复制后可直接编译运行,结果如下:格式可自行修改。

用C语言表示两个矩阵相加

#include "stdafx.h" //这是个什么东东

#include stdio.h

int main(int argc, char* argv[])

{

int i,j,c[4][4];

int a[4][4]={{1},{2},{3},{4}};

int b[4][4]={{0,1},{0,2},{0,3},{0,4},};

for(i=0;i4;i++) //这多了一个分号

{

for(j=0;j4;j++)

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

}

printf("矩阵A与B相加如下所示:\n");

for(i=0;i4;i++)

{

for(j=0;j4;j++)

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

printf("\n");

}

return 0;

}

如何用C语言编程实现矩阵相加、相乘

矩阵相加会简单点,设a[2][3]和b[2][3],只要在相应的地方相加就行了,

for(i=0;i2;i++)

for(j=0;j3;j++)

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

两矩阵相乘,

int a[][3]={1,2,3,4,5,6,7,8,9};//A为N×P矩阵,

//假设是3*3的矩阵

int b[][5]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};

//B为P×M矩阵,假设是3*5的矩阵

int c[3][5]={0};//结果矩阵3*5

for(int i=0;i3;i++)

for(int j=0;j5;j++)

for(int k=0;k3;k++)

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


当前名称:矩阵加法函数c语言程序,c语言加法运算函数
文章出自:http://njwzjz.com/article/hsdihp.html