//經(jīng)過vc6調(diào)試成功
創(chuàng)新互聯(lián)建站提供成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計,品牌網(wǎng)站制作,1元廣告等致力于企業(yè)網(wǎng)站建設(shè)與公司網(wǎng)站制作,十多年的網(wǎng)站開發(fā)和建站經(jīng)驗,助力企業(yè)信息化建設(shè),成功案例突破數(shù)千家,是您實現(xiàn)網(wǎng)站建設(shè)的好選擇.
void transferMat(int a[] , int b[], int n) //a表示待轉(zhuǎn)置的矩陣,b表示輸出矩陣,n表示元素個數(shù)
{
int i,j;
for(i=0; in; i++)
for(j=0; jn; j++)
{
b[j,i]=a[i,j];
}
}
①目標(biāo)
將一個二維數(shù)組表示的矩陣轉(zhuǎn)置
~
②命令行
#includestdio.h
#include stdlib.h
~
③定義函數(shù)
void fun(int array[3][3])
{int i,j,t;
for(i=0;i<3;i++)
for(j=i+1;j<3;j++)
/*注意:只遍歷了矩陣的右上半部分。
如果for(j=0;j<3;j++,表示遍歷矩陣全部元素,右上與左下交換,左下又與右上交換,導(dǎo)致重復(fù)轉(zhuǎn)置,矩陣沒有變化。*/
{t=array[i][j];
array[i][j]=array[j][i];
array[j][i]=t;}
/*交換語句,矩陣右上半部分,與對應(yīng)左下半部分,元素交換,完成轉(zhuǎn)置*/
}
~
④主函數(shù)(調(diào)用)
void main()
{int i,j;
int array[3][3]={{1,2,3},{4,5,6},{7,8,9}};
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
/*輸出原矩陣,遍歷全部*/
printf("%7d",array[i][j]);
printf("\n");}
fun(array);
/*利用fun函數(shù)完成轉(zhuǎn)置*/
printf("converted array:\n");
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
printf("%7d",array[i][j]);
printf("\n");}
}
#include stdio.h
int main()
{ struct aaa
{ int x;
int y;
};
struct aaa t,a[3][3]= {0,0,0,1,0,2,1,0,1,1,1,2,2,0,2,1,2,2};
int i,j;
for(i=0; i3; i++)
{ for(j=0; j3; j++)
printf("[%d,%d]? ",a[i][j].x,a[i][j].y);
printf("\n");
}
printf("after:\n");
for(i=0; i3; i++)
for(j=0; ji; j++)
{ t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
for(i=0; i3; i++)
{ for(j=0; j3; j++)
printf("[%d,%d]? ",a[i][j].x,a[i][j].y);
printf("\n");
}
return 0;
}
或:
#include stdio.h
struct aaa
{ int x;
int y;
};
void zhuanzhi(struct aaa a[][3])
{ struct aaa t;
int i,j;
for(i=0; i3; i++)
for(j=0; ji; j++)
{ t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
}
void prt(struct aaa a[][3])
{ int i,j;
for(i=0; i3; i++)
{ for(j=0; j3; j++)
printf("[%d,%d]? ",a[i][j].x,a[i][j].y);
printf("\n");
}
}
int main()
{ struct aaa a[3][3]= {0,0,0,1,0,2,1,0,1,1,1,2,2,0,2,1,2,2};
prt(a);
zhuanzhi(a);
printf("after:\n");
prt(a);
return 0;
}
參考代碼如下:
#includestdio.h
int A[10][10]={0};
void convert(int a[][10], int *m, int *n)
{
int i,j,t;
for(i=0;i*m;++i)
for(j=i;j*n;++j){
t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
t=*m;
*m=*n;
*n=t;
}
int main()
{
int i,j,m,n;
scanf("%d%d",m,n);
if(m10||n10)
return 0;
for(i=0;im;++i)
for(j=0;jn;++j)
scanf("%d",A[i][j]);
convert(A,m,n);
for(i=0;im;++i){
for(j=0;jn;++j)
printf("%d ",A[i][j]);
printf("\n");
}
return 0;
}