作者在 2011-06-13 23:21:05 发布以下内容
#include <stdio.h>
#include <stdlib.h>
#define SIZE 3
int** get_army(int **q);
void change(int **p);
void output(int **p);
int main()
{
int **p, **q,i;
q=(int **)malloc(sizeof(int *)*SIZE);//分配行指针
for(i=0; i<SIZE; i++)
q[i]=(int *)malloc(sizeof(int)*SIZE);//为每行分配内存
p=get_army(q);
change(p);
output(p);
return 0;
}
int** get_army(int **q)
{
int i,j;
for(i=0; i<SIZE; i++)
for(j=0; j<SIZE; j++)
scanf("%d",&q[i][j]);
return q;
}
void change(int **p)
{
int i,j;
int temp;
for(i=0; i<SIZE; i++)
for(j=0; j<i; j++)
{
temp=p[i][j];
p[i][j]=p[j][i];
p[j][i]=temp;
}
}
void output(int **p)
{
int i,j;
for(i=0; i<SIZE; i++)
{
for(j=0; j<SIZE; j++)
{
printf("%d ",p[i][j]);
}
printf("\n");
}
}
n*n阶矩阵转置#include <stdlib.h>
#define SIZE 3
int** get_army(int **q);
void change(int **p);
void output(int **p);
int main()
{
int **p, **q,i;
q=(int **)malloc(sizeof(int *)*SIZE);//分配行指针
for(i=0; i<SIZE; i++)
q[i]=(int *)malloc(sizeof(int)*SIZE);//为每行分配内存
p=get_army(q);
change(p);
output(p);
return 0;
}
int** get_army(int **q)
{
int i,j;
for(i=0; i<SIZE; i++)
for(j=0; j<SIZE; j++)
scanf("%d",&q[i][j]);
return q;
}
void change(int **p)
{
int i,j;
int temp;
for(i=0; i<SIZE; i++)
for(j=0; j<i; j++)
{
temp=p[i][j];
p[i][j]=p[j][i];
p[j][i]=temp;
}
}
void output(int **p)
{
int i,j;
for(i=0; i<SIZE; i++)
{
for(j=0; j<SIZE; j++)
{
printf("%d ",p[i][j]);
}
printf("\n");
}
}