将一个3×3的矩阵转置,用一函数实现这一计算(在函数中只能使用指针变量)。

这是我写的 可是转置不了 求大侠救我了
#include "stdafx.h"
#include <stdio.h>
void change(int a[9])
{
int i,j,t;
for(j=0;j<9;j++)
for(i=0;i<9-j;i++)
{
if(a[i]<a[i+1])
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
}
void main()
{
int a[9],i;
printf("intput 9 nums:\n");
for(i=0;i<9;i++)
{
scanf("%d",&a[i]);
}
void change(int a[9]);
for(i=0;i<9;i++)
{
printf("%d\n",a[i]);
}
}

你这里根本不是转置吧?指示一维数组的排序罢了。
要转置先定义二维数组
如:
int a[3][3];
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
scanf("%d",a[i][j]);//赋值

void zhuanzhi(int a[][3])
{ for(int i=0;i<3;i++)
for(int j=0;j<i;j++)
{ int t=a[i][j];a[i][j]=a[j][i];a[j][i]=t;
}
}
温馨提示:答案为网友推荐,仅供参考
相似回答