写一个函数,使给定的一个二维数组(3×3)转置,即行列互换.下面的编程
你的输入 输出格式都要按照它的标准 你的输出没有间隔 和换行
void Trans(int *matrix[][]){ for(int i=0;i<3;i++) for(int j=0;j<i;j++) { int t=matrix[i][j]; matrix[i][j]=matrix[j][i]; matrix[j][i]=t; }}对一个矩阵进行转置,只需要对其下三角部分进行处理,即第一行不处理,第二行处理第一个,第三行处理第1和第2个,以此类推。
数组不能重名的;
转置函数参数列表中没有要转置的数组,就相当于没有操作对象,操作对象是不会有反应的,在里面使用要转置的数组也是行不通的;
核心语句也错了:
应该是:
for(i=0;i<3;i++)
for(j=0;j<i;j++) //这里控制条件是j<i;而不应该是j<3;
//否则调换之后再调换相当于没有调换。
// 就是下三角与上三角交换,当然,对角线不用参与;
{
t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
不可以的,程序中的思想是将右上部分的与左下部分的交换,如果写成j=0,那就一个数交换两次了,这样就相当于没交换。
你可以但不执行(调试)一下感受一下。
求C语言程序:编写一个函数,使给定的一个二维数组(3*3)转置。感激不尽...
include<stdio.h> int main(){int i,j,t,a[3][3]={{1,2,3},{4,5,6},{7,8,9}};printf("原来的数组:\\n");for(i=0;i<3;i++){ for(j=0;j<3;j++)printf("%d ",a[i][j]);printf("\\n");} for(i=0;i<2;i++)for(j=i+1;j<3;j++){t=a[i][j];a[i...
写一个函数,使给定的一个二维数组(3×3)转置,即行列互换.下面的编程
#define N 3 int array[N][N]; void convert(int array[3][3]) \/*函数类型可定义为void,也可用默认的int*\/ {int i,j,t; \/*因为函数形实参是数组,按地址传递*\/ \/*两个数组所用空间相同,函数无需返回值*\/ for(i=0;i<N;i++) for(j=i+... 展开 是王子公主 | 浏览3313 次 |举报 我有更...
写一函数使给定的一个二维数组(3*3)转置即行列互换并在主函数中调用该...
include<cstdio> void trans(int a[3][3]){ int t;for(int i = 0; i < 3; i++){ for(int j =0; j < i; j++){ t = a[i][j];a[i][j] = a[j][i];a[j][i] = t;} } return ;} int main(){ int mat[3][3];printf("Please input a 3*3 matrix.\\n")...
写一函数,使给定的一个二维数组(3×3)转置,即行列互换。
1、首先打开Eclipse。2、新建一个新的Java工程。3、新建一个Example8类文件。4、创建2维数组。5、创建一个输出2维数组的函数。6、遍历数组,输出数组元素。7、输出2维数组。8、运行程序看看行列互换。
写一个函数,使给定的一个二维数组3*4进行行列转置,即行列互换,并输出转 ...
void main(){ int a[3][4] = {{1,2,3,4},{5,6,7,8},{9,0,1,2}};int b[4][3];int i, j;printf("before transform :\\n");for(i=0; i<3; i++){ for(j=0; j<4; j++){ b[j][i] = a[i][j];printf("%4d", a[i][j]);} printf("\\n");} printf(...
写一个函数,使给定的一个3×3的二维整型数组转置,即行列互换。
include <stdlib.h> void f(int a1[3][3]){ int i,j,t;for(i=0;i<3;i++)for(j=i;j<3;j++){ t=a1[j][i];a1[j][i]=a1[i][j];a1[i][j]=t;} } main(){ int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};int i,j;f(a);printf("转置后的数组为\\n");...
写一个函数,使给定的一个m*n的二维整型数组转置,要求函数参数是数组名...
void transpose(int a[][N]) { \/\/ 注意输入二维数组时列数必须显示给出 int i, j, t;for (i = 0; i < M; i++) { for (j = 0; j < i; j++) { \/\/ 遍历所有下三角元素 t = a[i][j];a[i][j] = a[j][i];a[j][i] = t; \/\/ 交换a[i][j]和a[j][i]}...
写一个函数,使给定的一个3*3的二维整型数组转置,即行列互换
include "iostream"using namespace std;int main(void){ int a[3][3];int b[3][3];int i=0,j=0;for (i=0;i<3;i++){ for (j=0;j<3;j++){ cin>>a[i][j];} } for (i=0;i<3;i++){ for (j=0;j<3;j++){ cout<<a[j][i]<<" ";} cout<<endl;} return...
写一个函数,使给定的一个3*3的二维整形数组转置,即行列互换. 大家帮...
void r(int *a, int m, int n)\/*a:数组首地址,m:行 n:列*\/ { int i,j,t;for (i=0;i<m;i++)for (j=1;j<n;j++){ t=a[i*n+j];a[i*n+j]=a[j*n+i];a[j*n+i]=t;} } void main(){ int data[3][3];...r(&data[0][0],3,3);或r(data[0],3,...
写一个函数,使给定的一个3X3的二维整型数组转置,即行列互换
void main(){ void switchArray(int[3][3]);int array[][3]={{1,2,3},{4,5,6},{7,8,9}};int i,j;switchArray(array);return 0;} void switchArray(int array[][3]){ int newArray[3][3];int i,j;for(i=0;i<3;i++){ for(j=0;j<3;j++){ newArray[j]=array...