c语言。给定一个5行5列的二维数组a[5][5],通过scanf函数给数组赋值,以矩阵的形式输出数组,并用函数调用实现下

c语言。给定一个5行5列的二维数组a[5][5],通过scanf函数给数组赋值,以矩阵的形式输出数组,并用函数调用实现下列算法:
(1)矩阵的转置(行列互换,存入到另一个数组中,并打印输出转置后的数组)
(2)求主对角线上各个数字的和,打印输出该结果
(3)打印输出矩阵a左下半的三角元素
(4)给定数组b[5][2],计算矩阵a和b的乘积,结果放入到c数组中,并将c以矩阵的形式输出c
菲笨笨 1年前 已收到1个回答 举报

dd007 幼苗

共回答了19个问题采纳率:89.5% 举报

#include
int main()
{
int a[5][5],trans[5][5],b[5][2],c[5][2],sum=0,i,j,k,temp;
for(i=0;i<5;i++)//初始数组a[5][5]的录入
for(j=0;j<5;j++)
scanf("%d",&a[i][j]);
for(i=0;i<5;i++)//数组的转置
for(j=0;j<5;j++)
trans[j][i]=a[i][j];
printf("矩阵转置后:");
for(i=0;i<5;i++)//转置后的数组的输出
{
for(j=0;j<5;j++)
printf("%d ",trans[i][j]);
printf("");
}
printf("");
for(i=0;i<5;i++)//主对角线上各个数字之和
sum=sum+a[i][i];
printf("矩阵主对角线上的数字之和为:%d",sum);
printf("");
printf("打印输出矩阵a左下半的三角如下:");
for(i=0;i<5;i++)//打印输出矩阵a左下半的三角元素
{
for(j=0;j<=i;j++)
printf("%d ",a[i][j]);
printf("");
}
printf("输入新的数组b[5][2]: ");
for(i=0;i<5;i++)//录入数组b[5][2],同时对数组c初始化
{
for(j=0;j<2;j++)
{
scanf("%d",&b[i][j]);
c[i][j]=0;
}
}
for(i=0;i<5;i++)//矩阵相乘
{
for(j=0;j<2;j++)
{
temp=0;
for(k=0;k<5;k++)
temp+=a[i][k]*b[k][j];
c[i][j]=temp;
}
}
for(i=0;i<5;i++)//相乘后的矩阵的输出
{
for(j=0;j<2;j++)
printf("%d ",c[i][j]);
printf("");
}
return 0;
}幸不辱命!代码调试成功的。。

1年前

4
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 0.031 s. - webmaster@yulucn.com