#include <stdio.h>
#define N 3
void inputmatrix(int *p)
{
///程序填空,请将该函数填写完整
}
void transpose(int *p)
{
///程序填空,请将该函数填写完整
}
void printmatrix(int *p)
{
///程序填空,请将该函数填写完整
}
int main()
{
int s[N][N], *p;
p = &s[0][0];
inputmatrix(p);
transpose(p);
printmatrix(p);
return 0;
}
注意:请务必提交完整的程序代码,不要修改代码框架。
输入
输入包含三行,为按照行列顺序输入的二维数组元素。
第一行到第三行每行均有3个整数,相邻两项之间用一个空格隔开。
输出
输出包含三行,是转置后的矩阵。每行均有3个整数,相邻两项之间用一个空格隔开。
输入示例
1 2 3
4 5 6
7 8 9
输出示例
1 4 7
2 5 8
3 6 9
数据范围
输入输出均为int范围的整数
#include <stdio.h>
#define N 3
void inputmatrix(int *p)
{
int i,j;
for(i=0;i<N;i++){
for(j=0;j<N;j++){
scanf("%d",p+i*N+j);
}
}
}
void transpose(int *p){
int tmp,i;
for(i=0;i<N*N;i++){
if(i==1||i==5){
tmp=*(p+i);
*(p+i)=*(p+i+2);
*(p+i+2)=tmp;
}
if(i==2){
tmp=*(p+i);
*(p+i)=*(p+i+4);
*(p+i+4)=tmp;
}
}
}
void printmatrix(int *p)
{
int i,j;
for(i=0;i<N;i++){
for(j=0;j<N;j++){
printf("%d ",*(p+i*N+j));
}
printf("\n");
}
}
int main()
{
int s[N][N], *p;
p = &s[0][0];
inputmatrix(p);
transpose(p);
printmatrix(p);
return 0;
}