第1个回答 2008-06-18
#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+1;j<N;j++) /* j=i+1防止两元素对调后再次恢复原位 */
{t=array[i][j];
array[i][j]=array[j][i];
array[j][i]=t;
}
}
main()
{
int i,j;
void convert(int [][]); /*注意此处的 [ ][ ] 形式,表明是二维数组*/
printf("Input array:\n"); /* 因为函数原型处仅检查形参个数、类型名、
for(i=0;i<N;i++) /* 顺序,而不检查形参名。所以只写成[ ][ ] 形式
for(j=0;j<N;j++) /* 即可。仅对void时如此,对int似乎不成立?*/
scanf("%d",&array[i][j]);
printf("\noriginal array:\n");
for(i=0;i<N;i++)
{for(j=0;j<N;j++)
printf("%5d",array[i][j]);
printf("\n");
}
convert(array);
printf("convert array:\n");
for(i=0;i<N;i++)
{for(j=0;j<N;j++)
printf("%5d",array[i][j]);
printf("\n");
}
}
第2个回答 2008-06-18
void trans(int a[3][3])
{
int i,j,k;
for(i=0;i<3;i++)
{
for(j=i+1;j<3;j++)
{
k=a[i][j];
a[i][j]=a[j][i];
a[j][i]=k;
}
}
}本回答被提问者采纳
第3个回答 2019-09-15
void
trans(int
a[3][3])
{
int
i,j,k;
for(i=0;i<3;i++)
{
for(j=i+1;j<3;j++)
{
k=a[i][j];
a[i][j]=a[j][i];
a[j][i]=k;
}
}
}
第4个回答 2008-06-18
void as(int zhuan[3][3])
{
int i,j,zj;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(i!=j)
zj=a[i][j],a[i][j]=a[j][i],a[j][i]=zj;
}
第5个回答 2020-01-10
c语言数组定义,中括号中必须是一个常量,而不能是一个变量;
数组不能重名的;
转置函数参数列表中没有要转置的数组,就相当于没有操作对象,操作对象是不会有反应的,在里面使用要转置的数组也是行不通的;
核心语句也错了:
应该是:
for(i=0;i<3;i++)
for(j=0;j
评论
0
0
0
加载更多