在C语言中用函数解写一个函数,是给定的一个3*3的二维整型数组转置,即行列互唤

如题所述

#include <stdio.h>
void output(int (*array)[3]);
void swap3mul3(int (*array)[3])
{
    int i,j,temp;
    for(i=0;i<3;i++)
        for(j=0;j<i;j++)
        {
            temp=array[i][j];
            array[i][j]=array[j][i];
            array[j][i]=temp;
        }
}
void output(int (*array)[3])
{
    int i;
    for(i=0;i<3;i++)
        printf("%4d %4d %4d\n",array[i][0],array[i][1],array[i][2]);
}
int main()
{
    int array[][3]={{1,2,3},{4,5,6},{7,8,9}};
    printf("before swap:\n");
    output(array);
    swap3mul3(array);
    printf("after swap:\n");
    output(array);
    return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-20
//#include "stdafx.h"//vc++6.0加上这一行.
#include "stdio.h"
#define N 3
void transpose(int (*p)[N]){
int i,j;
for(i=0;i<N;i++)
for(j=0;j<i;j++){
p[i][j]^=p[j][i];
p[j][i]^=p[i][j];
p[i][j]^=p[j][i];
}
}
int main(void){
int matrix[N][N],i,j;
for(i=0;i<N;i++){
for(j=0;j<N;j++){
scanf("%d",&matrix[i][j]);
printf("%7d",matrix[i][j]);
}
printf("\n");
}
printf("\n");
transpose(matrix);
for(i=0;i<N;i++){//Look at...
for(j=0;j<N;printf("%7d",matrix[i][j++]));
printf("\n");
}
return 0;
}本回答被网友采纳