c语言数组转置
发布时间: 2023-11-17 15:09:48
A. c程序数组的转置
你的数组转置程序,主要有两个问题,
一 C语言二维数组的参数声明和传参不正确
二 二维数组的转置,只需要以主对角线为轴翻转一次就行了,
因此,transport函数中for_j循环的终止条件应该为j<i;
改正后的数组转置C语言程序如下(改动的地方见注释)
#include<stdio.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;i<3;i++)
for(j=0;j<3;j++)
{
scanf_s("%d",&a[i][j]);//这里建议把scanf_s改成scanf
}
transport(a);//这里把a[3][3]改成a
for(i=0;i<3;i++)
{//这里加大括号
for(j=0;j<3;j++)
printf("%3d",a[i][j]);
printf(" ");//这里加一句,换行
}//这里加大括号
return 0;
}
void transport(int a[][3])//这里把返回值类型int改成void,把a[3][3]改成a[][3]
{
int i,j,t;
for(i=0;i<3;i++)
for(j=0;j<i;j++)//这里把j<3;改成j<i;
{
t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
}
热点内容