搜索
首页 电脑/网络 软件

C语言程序题

写一个函数,使给定的一个二维整形数组(3×3)转置,即行列互换.

全部回答

2004-11-13

0 0
    两种形式: void inverse(int *a, int n) { int i,j,k; for (i=0; i<n; i++) { for (j=i+1; j<n; j++) { k=*(a+i*n+j); *(a+i*n+j)=*(a+j*n+i); *(a+j*n+i)=k; } } } 或 void inverse(int (*a)[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; } } } 当然调用方式也不同,第一种的调用形式为inverse(&a[0][0],3);第二种的调用形式为inverse(a);但是第一种的好处是可以对N维对称阵进行转置,而第二种则只能对3*3的矩阵进行转置。
     。

2004-11-13

390 0
    main() {int c,r,i,j; int a[3][3],b[3][3];/*a为原数组,b为新数组。*/ for(r=0;r<3;r++) for(c=0;c<3;c++) scanf("%d",&a[r][c]);/*得到原数组的值。
    */ for(r=0;r<3;r++) {for(c=0;c<3;c++) printf("%d",a[r][c]); printf("\n");}/*输出原数组。
  */ for(r=0;r<3;r++) for(c=0;c<3;c++) b[c][r]=a[r][c];/*置换*/ printf("\n"); for(r=0;r<3;r++) {for(c=0;c<3;c++) printf("%d",b[r][c]); printf("\n");}/*输出新数组。
    */ }。

2004-11-13

367 0
for(i=0;i<3;i++) for(j=0;j<3;j++){ D(i,j):=A(j,i); }; D为转置矩阵数组,A为原数组。

类似问题换一批

热点推荐

热度TOP

相关推荐
加载中...

热点搜索 换一换

电脑/网络
软件
硬件
电脑装机
程序设计
互联网
操作系统/系统故障
笔记本电脑
反病毒
百度
软件
软件
多媒体软件
系统软件
办公软件
网络软件
图像处理软件
举报
举报原因(必选):
取消确定举报