2.
#include <stdio.h>
#include <stdlib.h>
void transpose(int ary[][3]);
int main(){
int num[3][3]={{1,2,3},{4,5,6},{7,8,9}};
int i,j;
for(i=0;i<3; i++){
for(j=0;j<3;j++)
printf("%d",*(*(num+i)+j));
printf("\n");
}
transpose(num);
printf("\n");
for(i=0;i<3; i++){
for(j=0;j<3;j++)
printf("%d",*(*(num+i)+j));
printf("\n");
}
printf("\n");
system("PAUSE");
return 0;
}
void transpose(int ary[][3]){
int ary2[3][3]={0};
int i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
*(*(ary2+i)+j) = *(*(ary+j)+i);
for(i=0;i<3;i++)
for(j=0;j<3;j++)
*(*(ary+i)+j)= *(*(ary2+i)+j);
return;
}
3.
#include <stdio.h>
#include <stdlib.h>
void transpose(int ary[][3]);
int main(){
int num[3][3]={{1,2,3},{4,5,6},{7,8,9}};
int i,j;
for(i=0;i<3; i++){
for(j=0;j<3;j++)
printf("%d",num[i][j]);
printf("\n");
}
transpose(num);
printf("\n");
for(i=0;i<3; i++){
for(j=0;j<3;j++)
printf("%d",num[i][j]);
printf("\n");
}
printf("\n");
system("PAUSE");
return 0;
}
void transpose(int ary[][3]){
int ary2[3][3];
int i,j;
for(i=0;i<3;i++){
for(j=i+1;j<3;j++){
int t = *(*(ary+i)+j);
*(*(ary+i)+j) = *(*(ary+j)+i);
*(*(ary+j)+i)=t;
}
}
return;
}
4.
#include <stdio.h>
#include <stdlib.h>
void transpose(int *arg);
int main(){
int *num=(int *)malloc(9*sizeof(int*));
int i,j;
for(i=0;i<9;++i){
*(num+i)=i+1;
}
for(i=0;i<3; i++){
for(j=0;j<3;j++)
printf("%d",*(num+i*3+j));
printf("\n");
}
transpose(num);
printf("\n");
for(i=0;i<3; i++){
for(j=0;j<3;j++)
printf("%d",*(num+i*3+j));
printf("\n");
}
printf("\n");
system("PAUSE");
return 0;
}
void transpose(int *arg ){
int i,j;
for(i=0;i<3; i++){
for(j=i+1;j<3;j++){
int temp;
temp=*(arg+i*3+j);
*(arg+i*3+j)=*(arg+j*3+i);
*(arg+j*3+i)=temp;
}
}
return ;
}