Ⅰ c语言矩阵转置函数,定义一个二维数组 int a[5][3],保存一个5*3的矩阵a,求他的转置矩阵b。
/* 程式功能: 矩阵转置 (transportation) *//*输入:m×n矩阵A *//*输出:矩阵B,B=AT */#include void main() { int i, j, m=5, n=5; int B[6][6], A[6][6]; printf("请依序输入二维阵列A(5x5)的元素内容(可以5个一行,可以空格或回车隔开): \n"); for (i = 1; i <= 5; i++) { for (j = 1; j <= 5; j++) { scanf("%d", &A[i][j]); } } printf("\n\n原始:\n"); for(i = 1; i <= m; i ++) { for(j = 1; j <=n; j++) { printf("%4d",A[i][j]); } printf("\n"); } printf("\n转置后:\n"); for (i = 1; i <= m; i++) { for (j = 1; j <= n; j++) { B[i][j] = A[j][i]; /*作转置的动作*/ printf("%4d ", B[i][j]); /*输出转置后的结果*/ } printf("\n"); }}
Ⅱ 如何用C语言程序编写“利用函数将给定的3*3二维数组转置”
#include<iostream>
usingnamespacestd;
void zhuang (int a[3][3])
{int m,n,i;
for(m=0;m<2;m++)
for(i=0;i<3;i++)
{if(m!=1||i!=0)
{n=a[i][m];
a[i][m]=a[m][i];
a[m][i]=n;
}
}
}
int main()
{
inta[3][3];
inti,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
cin>>a[i][j];
zhuang (a);
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
cout<<a[i][j]<<"";
cout<<endl;
}
return0;
}
运行效果:
(2)二维矩阵的转置怎么求c语言扩展阅读:
return语句有以下形式:
return;//不带返回值的return语句
return 0;//带返回值的return语句,或者返回一个变量或一个函数。
return 1//表示函数异常结束
不带返回值的return语句用于,中断返回值为void类型的函数的执行,而带返回值的return则不行。
#include<iostream>
using namespace std;
void f(){
cout<<"begin"<<endl;
return 0;此处有问题,此时return;的作用相当于break;用于中断循环的作用。所以不该返回某个具体的值。
cout<<"end"<<endl;
}
int main(){
f();
return 0;
}
将return 0;换为return;后,运行成功:
总结:
return;的作用相当于break;用于中断循环的作用;return 0;则是return的另一种用法,专用于返回值非void的函数返回其值。