写一个函数,使给定的一个二维数组3*4进行行列转置,即行列互换,并输出转置前后的结果。

如题所述

#include "stdio.h"

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("after transform :\n");
for(i=0; i<4; i++)
{
for(j=0; j<3; j++)
{
printf("%4d", b[i][j]);
}
printf("\n");
}
}追问

用调用函数的思想

追答

#include "stdio.h"

void transform(int a[3][4], int b[4][3])
{
int i, j;
for(i=0; i<3; i++)
for(j=0; j<4; j++)
b[j][i] = a[i][j];
}

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++)
{
printf("%4d", a[i][j]);
}
printf("\n");
}

transform(a, b);

printf("after transform :\n");
for(i=0; i<4; i++)
{
for(j=0; j<3; j++)
{
printf("%4d", b[i][j]);
}
printf("\n");
}
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2020-05-27
#include<stdio.h>
void f(int a[3][4],int b[4][3],int x,int y)
{
int i,j;
printf("The data in a:\n");
for(i=0;i<x;i++)
{ for(j=0;j<y;j++)
{ printf("%5d",a[i][j]);
b[j][i]=a[i][j];}
printf("\n");
}
printf("The data in b:\n");
for(i=0;i<y;i++)
{ for(j=0;j<x;j++)
printf("%5d",b[i][j]);
printf("\n");
}
}
void main()
{
int i=3,j=4,b[4][3];
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
f(a,b,3,4);
}
第2个回答  2011-04-25
transpose就是转置函数呀,怎么还要自己写呀?

写一个函数,使给定的一个二维数组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(...

C语言,写一个函数,使给定的一个3X3的二维整型数组转置,即行列互换。
if(z == 1)printf("此数为素数\\n");少了个=号,成赋值了~

用函数调用写一个函数,使给定的一个3x3的二维整形数组转置,即行列互 ...
int a[N][N]={1,2,3,4,5,6,7,8,9};pr(a);fun(a);pr(a);}

...写一个函数,使给定的一个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[...

C语言 函数调用写一个函数,使给定的一个3*3的二维整型数组转置,即行 ...
方法一、include<stdio.h> 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...

写一个函数,使给定的一个二维数组(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+... 展开 是...

写一函数使给定的一个二维数组(3*3)转置即行列互换并在主函数中调用该...
int mat[3][3];printf("Please input a 3*3 matrix.\\n");for(int i = 0; i < 3; i++)for(int j = 0; j < 3; j++)scanf("%d", &mat[i][j]);trans(mat);for(int i = 0; i < 3; i++){ for(int j = 0; j < 3; j++)printf("%d ", mat[i][j]);prin...

写一个函数,使给定的一个3×3的二维整型数组转置,即行列互换。
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");for(i=0;i<3;i++){ for(j=0;j<3;j++)printf("%d ",a[i][j]);printf("\\n");} system("PAUSE");return 0;} ...

...使给定的一个3*3的二维整型数组转置,即行列互换,
public static void main(String[] args){ int array[][]={{1,2,3},{4,5,6},{7,8,9}};int[][] tmp={{1,2,3},{4,5,6},{7,8,9}};for (int i=0;i<3;i++){ for(int j=0;j<3;j++){ array[i][j]=tmp[j][i];} } for (int i=0;i<3;i++){ for(int...

写一个函数,使给定的一个3*3二维整型数组转置,即行列互换。 错误是unexp...
亲:是{}没有匹配,也就是你少了一个}#include <stdio.h> void main(){ void change(int a[3][3]);int a[3][3],i,j;printf("please enter 9 numbers:\\n");for(i=0;i<3;i++){ for(j=0;j<3;j++)scanf("%d",&a[i][j]);} printf("the array you entered:\\n");...

相似回答