#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");
}
} for(j=i+1;j<N;j++) /* j=i+1防止两元素对调后再次恢复原位这句怎么理解阿,谢谢,写成J=0可以吗
麻烦帮我看一下,下面我自己写的错在哪,可以吗
#include <stdio.h>
void main()
{
int i,j;
int a[3][3];
int a[i][j];
for(i=0;i<3;i++);
for(j=0;j<3;j++);
scanf("%d",&a[i][j]);
printf("/yuanlaia[i],a[j]:/n");
for(i=0;i<3;i++);
{
for(j=0;j<3;j++);
printf("%d",a[i][j]);
printf("/n");
}
void zhuanghuan(int i,int j,int t);
for (i=0;i,3;i+=);
{for(j=0;j<3;j++);
printf("%d",a[i][j]);
printf("/n");
}
}
void zhuanghuan(int i,int j,int t)
{
for(i=0;i<3;i++);
for(j=i+1;j<3;j++);
{t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
}
麻烦帮我看一下补充中我自己写的,错在哪,可以吗