| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1087 人关注过本帖
标题:[求助]怎样使用指针实现冒泡排序。谢谢了
只看楼主 加入收藏
liuming2008
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2007-10-6
收藏
 问题点数:0 回复次数:9 
[求助]怎样使用指针实现冒泡排序。谢谢了
哪个跟我来看一下啊,用指针实现冒泡排序
为什么最后的排序没用啊,
#include<stdio.h>
void main()
{
int i,j,temp;
int *p1,*p2;
int grade[5];
printf("请输入5个数字:\n");
for(i=0;i<5;i++)
{
scanf("%d",&grade[i]);
}
p1=grade;
p2=grade+1;
for(i=0;i<5;i++)
{
for(j=0;j<5-i-1;j++)
{
if(*p1<*(p2+1))
{
temp=*(p2+1);
*(p2+1)=*p1;
*p1=temp;
}
}
}
printf("\n排序后的数为:\n");
for(i=0;i<5;i++)
{
printf("%d ",grade[i]);
}
printf("\n");
}
搜索更多相关主题的帖子: 指针 冒泡 
2007-10-06 19:35
xhtang
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2007-10-1
收藏
得分:0 
好像你的指针根本就没有移动,而且根本没有必要两个指针。你把冒泡的原理弄清楚应该很简单的。
我帮你改了一下,你参考一下。。
#include<stdio.h>
void main()
{
int i,j,temp;
int *p1,*p2;
int grade[5];
printf("请输入5个数字:\n");
for(i=0;i<5;i++)
{
scanf("%d",&grade[i]);
}
p1=grade;
//p2=grade+1;
for(i=0;i<4;i++)
{
for(j=i;j<5;j++)
{
if(*(p1+i)<*(p1+j))
{
temp=*(p1+j);
*(p1+j)=*(p1+i);
*(p1+i)=temp;

}
}
}
printf("\n排序后的数为:\n");
for(i=0;i<5;i++)
{
printf("%d ",grade[i]);
}
printf("\n");
}

帮助别人是我的快乐! 别人帮我,我心存感激!
2007-10-06 19:59
liuming2008
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2007-10-6
收藏
得分:0 
回复:(xhtang)好像你的指针根本就没有移动,而且根...
大哥,太感谢你了。
谢谢啊谢谢了啊

2007-10-06 20:07
xhtang
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2007-10-1
收藏
得分:0 
一起学习

帮助别人是我的快乐! 别人帮我,我心存感激!
2007-10-07 13:51
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

其实数组也是这么实现的.


倚天照海花无数,流水高山心自知。
2007-10-07 13:55
huxs
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2007-10-7
收藏
得分:0 

冒泡排序还是比较简单的,呵呵

2007-10-07 14:06
tianxinguang
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-10-9
收藏
得分:0 
回复:(xhtang)好像你的指针根本就没有移动,而且根...
study

2007-10-09 16:59
hiksa
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2007-10-9
收藏
得分:0 
凑贴数
2007-10-09 17:46
fangjian77
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2007-7-6
收藏
得分:0 
回复:(liuming2008)[求助]怎样使用指针实现冒泡排序...

C没有学过.

2007-10-09 20:22
qq3412155
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-10-9
收藏
得分:0 

#include<stdio.h>
void main()
{
int i,j;
int s[5]={3,1,2,5,4};

int *ps=s;

for(i=0;i<5;i++)
{
for(j=0;j<5-i-1;j++)
{
if(*(ps+j)<*(ps+j+1))
{
*(ps+j)=*(ps+j)+*(ps+j+1);
*(ps+j+1)=*(ps+j)-*(ps+j+1);
*(ps+j)=*(ps+j)-*(ps+j+1);
}
}
}
for(i=0;i<5;i++)
{
printf(" %d ",*(ps+i));
}
}

2007-10-09 21:00
快速回复:[求助]怎样使用指针实现冒泡排序。谢谢了
数据加载中...
 
   



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

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