为什么没人回答啊,急死我了。一个关于用指针解决矩阵转置的问题
输入一个3*3矩阵,将该矩阵转置,并输出转置后的矩阵。(用指针操作二维数组中的元素)[[italic] 本帖最后由 zylwzg 于 2007-11-26 19:45 编辑 [/italic]]
----------------解决方案--------------------------------------------------------
#include "stdio.h"
void move(int *pointer)
{
int i,j,k;
for(i=0;i<3;i++)
{
for(j=i;j<3;j++)
{
k=*(pointer+3*i+j);
*(pointer+3*i+j)=*(pointer+3*j+i);
*(pointer+3*j+i)=k;
}
}
}
int main(void)
{
int a[3][3],*p,i;
printf("请输入数:\n"); //数于数之间用逗号分开,每输入三个按回车!
for(i=0;i<3;i++)
{
scanf("%d,%d,%d",&a[i][0],&a[i][1],&a[i][2]);
}
p=&a[0][0];
move(p);
printf("交换完的数为:\n");
for(i=0;i<3;i++)
{
printf("%d,%d,%d\n",a[i][0],a[i][1],a[i][2]);
}
getchar();
return(0);
}
----------------解决方案--------------------------------------------------------
最主要就是move函数中的两个fort循环吧.呵呵.分析题目就知道了.
----------------解决方案--------------------------------------------------------
#include "stdio.h"
void ZhuanZhi(int (*p)[3]);
void main()
{
int a[3][3],i,j;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
scanf("%d",&a[i][j]);
}
}
printf("before zhuanzhi:\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("%d",a[i][j]);
}
printf("\n");
}
ZhuanZhi(a);
printf("after zhuanzhi:\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("%d",a[i][j]);
}
printf("\n");
}
}
void ZhuanZhi(int (*p)[3])
{
int i,j;
for(i=0;i<3;i++)
{
for(j=0;j<=i;j++)
{
int t=p[i][j]; p[i][j]=p[j][i];p[j][i]=t;
}
}
}
----------------解决方案--------------------------------------------------------
谢谢你们了
呵呵 这下我可以多多长知识了 ----------------解决方案--------------------------------------------------------
----------------解决方案--------------------------------------------------------
我这样做的为什么不对啊,帮我分析下
#include<stdio.h>void main()
{
int a[3][3],i,j;
for (i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
scanf("%d",&a[i][j]);
}
}
printf("转换前为\n");
for (i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("%d ",a[i][j]);
}
printf("\n");
}
for (i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
int t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
}
printf("转换后为:");
for (i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("%d ",a[i][j]);
}
printf("\n");
}
}
----------------解决方案--------------------------------------------------------