C语言求助!
按如下函数原形编程计算并输出求m*n阶矩阵的转置矩阵。期中m和n的值由用户从键盘输入。已知m和n的值都不超过10。求转置矩阵函数原形:voidTranspose(inta...
按如下函数原形编程计算并输出求m*n阶矩阵的转置矩阵。期中m和n的值由用户从键盘输入。已知m和n的值都不超过10。
求转置矩阵函数原形:void Transpose(int a[][N], int m, int n);
要求:
在主函数中输入m*n数组元素的值,调用函数 Transpose()求转置矩阵,输出转置矩阵.
友情提示: 注意"行下标i=0 和列下标j=0 及 i>j"时的处理!!!
输入输出要求:
输入提示信息和格式信息:
"Input m, n:"
"%d,%d"
"Input %d*%d matrix:\n"
"%d"
输出提示信息和格式信息:
"The transposed matrix is:\n"
"%4d"
输入输出样例:
Input m, n:4,4
Input 4*4 matrix:
11 12 13 14
21 22 23 23
31 32 33 34
41 42 43 44
The transposed matrix is:
11 21 31 41
12 22 32 42
13 23 33 43
14 23 34 44 展开
求转置矩阵函数原形:void Transpose(int a[][N], int m, int n);
要求:
在主函数中输入m*n数组元素的值,调用函数 Transpose()求转置矩阵,输出转置矩阵.
友情提示: 注意"行下标i=0 和列下标j=0 及 i>j"时的处理!!!
输入输出要求:
输入提示信息和格式信息:
"Input m, n:"
"%d,%d"
"Input %d*%d matrix:\n"
"%d"
输出提示信息和格式信息:
"The transposed matrix is:\n"
"%4d"
输入输出样例:
Input m, n:4,4
Input 4*4 matrix:
11 12 13 14
21 22 23 23
31 32 33 34
41 42 43 44
The transposed matrix is:
11 21 31 41
12 22 32 42
13 23 33 43
14 23 34 44 展开
4个回答
展开全部
#include <stdio.h>
void trans(int a[10][10],int m,int n)
{
int tmp,i,j;
int mm;
if(m>n) mm=m;
else mm=n;
for(i=0;i<mm;i++)
for(j=i;j<mm;j++)
{
tmp=a[i][j];
a[i][j]=a[j][i];
a[j][i]=tmp;
}
}
main()
{
int a[10][10];
int m,n,i,j;
printf("Please input the size of the matric(m rows, n column):");
scanf("%d %d",&m,&n);
printf("please input %d rows %d column data:\n",m,n);
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
for(i=0;i<m;i++)
{ for(j=0;j<n;j++)
printf("%d ",a[i][j]);
printf("\n");
}
trans(a,m,n);
for(i=0;i<n;i++)
{ for(j=0;j<m;j++)
printf("%d ",a[i][j]);
printf("\n");
}
}
void trans(int a[10][10],int m,int n)
{
int tmp,i,j;
int mm;
if(m>n) mm=m;
else mm=n;
for(i=0;i<mm;i++)
for(j=i;j<mm;j++)
{
tmp=a[i][j];
a[i][j]=a[j][i];
a[j][i]=tmp;
}
}
main()
{
int a[10][10];
int m,n,i,j;
printf("Please input the size of the matric(m rows, n column):");
scanf("%d %d",&m,&n);
printf("please input %d rows %d column data:\n",m,n);
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
for(i=0;i<m;i++)
{ for(j=0;j<n;j++)
printf("%d ",a[i][j]);
printf("\n");
}
trans(a,m,n);
for(i=0;i<n;i++)
{ for(j=0;j<m;j++)
printf("%d ",a[i][j]);
printf("\n");
}
}
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用二维数组存, 输出时按列输出
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询