//二维数组转置#include<stdio.h>int main(){void exchange(int *p);int a[3][3],i,j;int *p;//二维数组的输入printf("请输入二维数组:");for(i=0;i<3;i++){for(j=0;j<3;j++){scanf("%d",&a[i][j]);}}p=&a[0][0];//指向第一行//行列互换exchange(p);//输出printf("该二维数组转置为:");for(i=0;i<3;i++){for(j=0;j<3;j++){printf("%d ",a[i][j]);}printf("\n");}return 0;}//不用指针void exchange(int *p){int temp,i,j;for(i=0;i<3;i++){for(j=i+1;j<3;j++){temp=*(p+3*i+j);//下标需要数组或指针类型//数组元素是按行排列的,因此a[i][j]在a数组中是第(3*i+j)个元素*(p+3*i+j)=*(p+3*j+i);*(p+3*j+i)=temp;}}//j=i+1,这样循环不会重复执行}
1200字范文,内容丰富有趣,写作的好帮手!