| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 755 人关注过本帖
标题:帮帮啊啊!
只看楼主 加入收藏
xuzhou
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2005-5-9
收藏
 问题点数:0 回复次数:3 
帮帮啊啊!
用指针的方法实现3*3 矩阵的转置!  会的教教我啊!
2005-05-09 15:10
黑客
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2005-3-18
收藏
得分:0 
为什么要用指针啊??
唉------
现在有点忙的,过两天给你回复.
,0,0,0" width="500" height="350">" />

教父,已成为过去;谁来续写这段传说?-----我!
2005-05-09 23:00
黑客
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2005-3-18
收藏
得分:0 

我用数组指针与连表做了一个 但我觉得这样有一点别扭,如果是二维数组不是更简单吗?? 现在我把我的代码发上给你: #include<iostream> using std::cout; using std::cin; using std::endl; #define MAX 3 typedef struct Elemment{//定义元素 int data; int line; struct Elemment *next; }Elemment; void CreatMatr(Elemment *[]);//用指针数组创建距阵 void TurnMatr(Elemment *[]);//转置 void Display(Elemment *[]);//输出 int main() { Elemment *M[MAX]; for(int i=0;i<MAX;i++) M[i]=NULL; CreatMatr(M); TurnMatr(M); Display(M); return 0; } void CreatMatr(Elemment *M[]) { int i,j; int elem; Elemment *p,*q; cout<<"input the elem of Matrix:"<<endl; for(i=0;i<MAX;i++) { for(j=0;j<MAX;j++) { cin>>elem; p=new Elemment; p->data=elem; p->line=j; p->next=NULL; if(M[i]==NULL) q=M[i]=p; else{ q->next=p; q=p; } } }

}

void TurnMatr(Elemment *M[]) { Elemment *former,*later; int temp; for(int i=0;i<MAX;i++) for(int j=i+1;j<MAX;j++)//对角线不用变化,而两三角对称交换.注意一下这里的j=i+1 { former=M[i]; while(former->line!=j) former=former->next; temp=former->data; later=M[j]; while(later->line!=i) later=later->next; former->data=later->data; later->data=temp; } } void Display(Elemment *M[]) { Elemment *q; cout<<"\n转置后的距阵:"<<endl; for(int row=0;row<MAX;row++) { q=M[row]; while(q!=NULL) { cout<<q->data<<' '; q=q->next; } cout<<endl; } }


教父,已成为过去;谁来续写这段传说?-----我!
2005-05-10 22:58
lp520zw
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2005-4-23
收藏
得分:0 
用数组不是更方便吗?
非要用指针啊

2005-05-11 14:21
快速回复:帮帮啊啊!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012189 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved