| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 972 人关注过本帖
标题:指针实现冒泡排序的简单问题...
只看楼主 加入收藏
ziyi555
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2006-11-4
收藏
 问题点数:0 回复次数:4 
指针实现冒泡排序的简单问题...

看代码:
#include<stdio.h>
void main()
{
int i, j, temp, num[5]={12,15,54,36,85};
for(i=0; i<5-1; i++)
{
for(j=0; j<5-i-1; j++)
{
if(num[j]<num[j+1])
{
temp=num[j];
num[j]=num[j+1];
num[j+1]=temp;
}
}
}
printf("从大到小输出数组为的:\n");
for(i=0;i<5;i++)
printf("%4d",num[i]);
}

我想用指针来实现上面的排序,,该怎么写那个嵌套循环??高手指点下

#include<stdio.h>
void main()
{
int i, j, num[5]={12,15,54,36,85};
int *arr;
arr=num;

/* 下面怎么写控制交换的那一段啊?*/

printf("从大到小输出数组为的:\n");
for(*arr, i=0; i<5; *(arr++), i++)
printf("%4d",*arr);
}

搜索更多相关主题的帖子: 指针 简单问题 冒泡 
2006-11-04 12:27
C语言学习者
Rank: 4
等 级:贵宾
威 望:13
帖 子:1278
专家分:0
注 册:2006-9-26
收藏
得分:0 

#include<stdio.h>
void main()
{
int i, j,num[5]={12,15,54,36,85},temp;
int *arr;
arr=num;

/* 下面怎么写控制交换的那一段啊?*/

printf("从大到小输出数组为的:\n");
for(i=0;i<5-1;i++)
{for( j=0; j<5-i-1; *(arr++), j++)
{
if(*arr<*(arr+1))
{
temp=*arr;
*arr=*(arr+1);
*(arr+1)=temp;
}

}
arr=num;
}
arr=num;
for( i=0; i<5; *(arr++), i++)
printf("%4d",*arr);
}



谁有强殖装甲第二部,可以Q我460054868
2006-11-04 12:55
ziyi555
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2006-11-4
收藏
得分:0 
太谢谢咯,试了半天原来少了句话....但是还有点点不清楚
#include<stdio.h>
void main()
{
int i, j, temp,num[5]={12,15,54,36,85};
int *arr;
arr=num;
for(i=0;i<5;i++)
{ for(*arr, j=0; j<5-i-1; *(arr++), j++)
{
if(*arr<*(arr+1))
{
temp=*arr;
*arr=*(arr+1);
*(arr+1)=temp;
}
}
arr=num; //为什么要加这一句呢??它还是加在循环里面 为什么?..
}
arr=num; //这句可不可以省略? 我省略了也可以执行啊....
printf("从大到小输出数组为的:\n");
for(*arr, i=0; i<5; *(arr++), i++)
printf("%6d",*arr);
printf("\n");
}

放手一博
2006-11-04 13:08
C语言学习者
Rank: 4
等 级:贵宾
威 望:13
帖 子:1278
专家分:0
注 册:2006-9-26
收藏
得分:0 
以下是引用ziyi555在2006-11-4 13:08:41的发言:
太谢谢咯,试了半天原来少了句话....但是还有点点不清楚
#include<stdio.h>
void main()
{
int i, j, temp,num[5]={12,15,54,36,85};
int *arr;
arr=num;
for(i=0;i<5;i++)
{ for(*arr, j=0; j<5-i-1; *(arr++), j++)
{
if(*arr<*(arr+1))
{
temp=*arr;
*arr=*(arr+1);
*(arr+1)=temp;
}
}
arr=num; //为什么要加这一句呢??它还是加在循环里面 为什么?../*这个地方是不加是不可以,因为第一点,会有超出数组范围。第二点,冒泡不可以实现,你不信你可以试试。
}
arr=num; //这句可不可以省略? 我省略了也可以执行啊..../*这个地方不加也可以,上面已经有*/
printf("从大到小输出数组为的:\n");
for(*arr, i=0; i<5; *(arr++), i++)
printf("%6d",*arr);
printf("\n");
}


谁有强殖装甲第二部,可以Q我460054868
2006-11-04 13:27
Paulnet
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2006-3-18
收藏
得分:0 
冒泡排序到底是什么啊
我怎么弄了半天都不懂?

我从来不说一些没有意义、为祸人间、又没有建设性的话,所以我不留下任何说明。
2006-11-11 09:52
快速回复:指针实现冒泡排序的简单问题...
数据加载中...
 
   



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

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