大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
童鞋,不知道你是用的什么测试数据,在我的机器上测试了几组数据,结果都是正确的。
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、小程序定制开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了昆都仑免费建站欢迎大家使用!
重复下我的测试代码。
#include "stdio.h"
#include "stdlib.h"
#include "malloc.h"
void multiplication(int a,int b,int c,int *p,int *q);
void main()
{
int m,n,l,h;
int i,j,g,k;
int *p,*q;
char x;
printf("请输入a矩阵行数和列数,以空格分开,,,");
scanf("%d %d",m,n);
p=(int *)malloc(sizeof(int)*m*n);
for(i=0;im;i++)
for(j=0;jn;j++)
{
printf("请输入a矩阵%d行%d列的数,,",(i+1),(j+1));
scanf("%d",(p+m*i+j));
}
printf("请输入b矩阵行数和列数,以空格分开,,,");
scanf("%d %d",l,h);
q=(int *)malloc(sizeof(int)*l*h);
for(g=0;gl;g++)
for(k=0;kh;k++)
{
printf("请输入b矩阵%d行%d列的数,,",(g+1),(k+1));
scanf("%d",(q+l*g+k));
}
multiplication( m, n, h, p, q);
}
void multiplication(int a,int b,int c,int *p,int *q)
{
int i,j;
int k;
int sum;
for(i=0;ia;i++)
{
for(j=0;jc;j++)
{
sum=0;
for(k=0;kb;k++)
{
sum=sum+(*(p+a*i+k))*(*(q+b*k+j));
}
printf("%d ",sum);
}
printf("\n");
}
}
附带一组测试数据
A 3 4
2 1
B 3
4
Result
25
10
结果正确。
#includestdio.h
#define N 10
int getsum(int n,int a[][N])//要求的通用函数
{
int i,j,sum=0;
for(i=0;in;i++)
for(j=i;jn;j++)
sum+=a[i][j];
return(sum);
}
void main(void)//主函数
{
int i,j,n,sum;
int a[N][N];
printf("请输入方阵阶数:\n");
scanf("%d",n);
printf("请依次输入方阵里的值:\n");
for(i=0;in;i++)
for(j=0;jn;j++)
scanf("%d",a[i][j]);
sum=getsum(n,a);
printf("%d",sum);
}
(-1)3.若n阶方阵A=(aij),则A相应的行列式D记作D=|A|=detA=det(aij)。
若矩阵A相应的行列式D=0,称A为奇异矩阵,否则称为非奇异矩阵,标号集:序列1,2,...,n中任取k个元素i1,i2,...,ik满足1≤i1i2...ik≤n(1)
i1,i2,...,ik构成{1,2,...,n}的一个具有k个元素的子列,{1,2,...,n}的具有k个元素的满足(1)的子列的全体记作C(n,k),显然C(n,k)个子列。
因此C(n,k)是一个具有个元素的标号集(参见第二十一章,1,二),C(n,k)的元素记作σ,τ,...,σ∈C(n,k)表示。
σ={i1,i2,...,ik}是{1,2,...,n}的满足(1)的一个子列.若令τ={j1,j2,...,jk}∈C(n,k),则σ=τ表示i1=j1,i2=j2,...,ik=jk。
扩展资料:
①行列式A中某行(或列)用同一数k乘,其结果等于kA。
②行列式A等于其转置行列式AT(AT的第i行为A的第i列)。
③若n阶行列式|αij|中某行(或列);行列式则|αij|是两个行列式的和,这两个行列式的第i行(或列),一个是b1,b2,…,bn;另一个是с1,с2,…,сn;其余各行(或列)上的元与|αij|的完全一样。
④行列式A中两行(或列)互换,其结果等于-A。
⑤把行列式A的某行(或列)中各元同乘一数后加到另一行(或列)中各对应元上,结果仍然是A。
参考资料来源:百度百科-行列式