c语言编写函数使数组转置 C语言转置

c程序数组的转置?

你的数组转置程序,主要有两个问题,

在同德等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站制作、成都做网站 网站设计制作按需设计网站,公司网站建设,企业网站建设,品牌网站设计,成都全网营销,外贸网站建设,同德网站建设费用合理。

一 C语言二维数组的参数声明和传参不正确

二 二维数组的转置,只需要以主对角线为轴翻转一次就行了,

因此,transport函数中for_j循环的终止条件应该为ji;

改正后的数组转置C语言程序如下(改动的地方见注释)

#includestdio.h

int main()

{

int a[3][3];

int i,j;

void transport(int a[][3]);//这里把返回值类型int改成void,把a[3][3]改成a[][3]

printf("input:");

for(i=0;i3;i++)

for(j=0;j3;j++)

{

scanf_s("%d",a[i][j]);//这里建议把scanf_s改成scanf

}

transport(a);//这里把a[3][3]改成a

for(i=0;i3;i++)

{//这里加大括号

for(j=0;j3;j++)

printf("%3d",a[i][j]);

printf("\n");//这里加一句,换行

}//这里加大括号

return 0;

}

void transport(int a[][3])//这里把返回值类型int改成void,把a[3][3]改成a[][3]

{

int i,j,t;

for(i=0;i3;i++)

for(j=0;ji;j++)//这里把j3;改成ji;

{

t=a[i][j];

a[i][j]=a[j][i];

a[j][i]=t;

}

}

c语言数组转置

//try it 试试看

#include stdio.h

void transpose( int a[6][6],int n)

{

int i,j,temp;

for(i=0;in;i++)

for (j=0;ji;j++)

{temp=a[i][j];a[i][j]=a[j][i];a[j][i]=temp;}

}

void main()

{

int i,j,a[6][6],n;

printf("please input the 维度1-6:");

scanf("%d",n);

printf("请输入数组元素:\n");

for (i=0;in;i++)

for(j=0;jn;j++)

scanf("%d",a[i][j]);

transpose(a,n);

printf("操作后的数组为:\n");

for (i=0;in;i++)

{

for(j=0;jn;j++)

printf("%d ",a[i][j]);printf("\n");

}

c语言 写一个函数,使给定的一个二维数组(3*3)转置

/*

函数功能:

对任意row行col列的矩阵转置

函数入口参数:

指向一维整型数组的指针变量a,指向单元存放转置前的矩阵元素

整型变量row,矩阵的行数即二维整型数组的行数

整型变量col,矩阵的列数即二维整型数组的列数

函数出口参数:

指向一维整型数组的指针变量at,指向单元存放转置后的矩阵元素

函数返回值:

*/

void

convert(int

(*a)[col],

int

(*at)[row],

int

row,

int

col)

{

int

i,

j;

for

(i=0;

irow;

i++)

{

for

(j=0;

jcol;

j++)

{

*(*(at+j)+i)

=

*(*(a+i)+j);

}

}

}

C语言:编写函数,用指针型形参访问数组,把给定数组转置,并给出运行截图,咋做?

由于题目没有说明数组是方阵,所以本答案按一般二维数组处理。

代码文本:

#include "stdio.h"

#define N 3

#define M 5

void myf(int a[][M],int b[][N],int i,int j){//本函数将数组a转置为b

int t;

for(t=j-1,i--;i=0;i--)

for(j=t;j=0;b[j][i]=a[i][j--]);

}

int main(int argc,char *argv[]){

int a[N][M],b[M][N],i,j,t;

puts("Transpose before:");

for(t=i=0;iN;i++){//给数组a赋值并输出

for(j=0;jM;printf("%3d",a[i][j++]=++t));

putchar('\n');

}

myf(a,b,N,M);//调用转置函数

puts("Transpose later:");

for(i=0;iM;i++){//输出转置后的数组

for(j=0;jN;printf("%3d",b[i][j++]));

putchar('\n');

}

return 0;

}


当前名称:c语言编写函数使数组转置 C语言转置
本文地址:http://cdiso.cn/article/hheide.html

其他资讯