C编程:麻烦各位大神帮我找出错误,矩阵相加和相乘的结果都不对
#include<stdio.h>intmain(){inti,j,k,a,b=0;intstr1[3][4]={{14,85,6},{7,0,5},{99,452,8,...
#include<stdio.h>
int main(){
int i,j,k,a,b=0;
int str1[3][4]={{14,85,6},{7,0,5},{99,452,8,5}},str1t[4][3],str2[3][4]={{4,5,7,8},{4,8,5,2},{0,8,9}},str3[3][4],str4[3][3];
printf("str1原矩阵:\n");
for(i=0;i<3;i++){
for(j=0;j<4;j++)
printf("%d\t",str1[i][j]);
printf("\n");
}
printf("str1转置后的矩阵str1t:\n");
for(i=0;i<4;i++){
for(j=0;j<3;j++){
str1t[i][j]=str1[j][i];
printf("%d\t",str1t[i][j]);
}
printf("\n");
}
printf("str1与str2两矩阵相加:\n");
for(i=0;i<3;i++){
for(j=0;j<4;j++){
str3[i][j]=str1[i][j]+str2[i][j];
printf("%d\t",str3[3][4]);
}
printf("\n");
}
printf("str1,str1t两矩阵相乘:\n");
for(k=0;k<3;k++){
for(i=0;i<3;i++){
for(j=0;j<4;j++){
a=str1[k][j]*str1t[j][i];
b=b+a;
}
str4[k][i]=b;
printf("%d\t",str4[k][i]);
}
printf("\n");
}
return 0;
} 展开
int main(){
int i,j,k,a,b=0;
int str1[3][4]={{14,85,6},{7,0,5},{99,452,8,5}},str1t[4][3],str2[3][4]={{4,5,7,8},{4,8,5,2},{0,8,9}},str3[3][4],str4[3][3];
printf("str1原矩阵:\n");
for(i=0;i<3;i++){
for(j=0;j<4;j++)
printf("%d\t",str1[i][j]);
printf("\n");
}
printf("str1转置后的矩阵str1t:\n");
for(i=0;i<4;i++){
for(j=0;j<3;j++){
str1t[i][j]=str1[j][i];
printf("%d\t",str1t[i][j]);
}
printf("\n");
}
printf("str1与str2两矩阵相加:\n");
for(i=0;i<3;i++){
for(j=0;j<4;j++){
str3[i][j]=str1[i][j]+str2[i][j];
printf("%d\t",str3[3][4]);
}
printf("\n");
}
printf("str1,str1t两矩阵相乘:\n");
for(k=0;k<3;k++){
for(i=0;i<3;i++){
for(j=0;j<4;j++){
a=str1[k][j]*str1t[j][i];
b=b+a;
}
str4[k][i]=b;
printf("%d\t",str4[k][i]);
}
printf("\n");
}
return 0;
} 展开
1个回答
展开全部
两个矩阵相加的时候,输出的语句写错了 应该是printf("%d\t",str3[i][j]);
矩阵相乘的时候,结果矩阵的每个元素的初始值都应该为0,相乘的语句里面的第二个for循环里面加一句 b=0
for(k=0;k<3;k++){
for(i=0;i<3;i++){
b=0;
for(j=0;j<4;j++){
a=str1[k][j]*str1t[j][i];
b=b+a;
}
str4[k][i]=b;
printf("%d\t",str4[k][i]);
}
然后 就没有问题了
矩阵相乘的时候,结果矩阵的每个元素的初始值都应该为0,相乘的语句里面的第二个for循环里面加一句 b=0
for(k=0;k<3;k++){
for(i=0;i<3;i++){
b=0;
for(j=0;j<4;j++){
a=str1[k][j]*str1t[j][i];
b=b+a;
}
str4[k][i]=b;
printf("%d\t",str4[k][i]);
}
然后 就没有问题了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询