一个数组排序的问题

pan7861 2003-09-12 05:04:18
问你一道题吧。
定义double型数组如下:
double d[]={6.2,6.9,7.3,3.2,5.8}
利用选择排序的方法,对存放在数组d中数据元素实施降序排列。
编写应用程序,按题目要求对数组d中的数据元素排序,并把排序前的数据序列和排序完成后的数据序列在屏幕上输出。
...全文
40 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
nazha 2003-09-12
  • 打赏
  • 举报
回复
#include "stdafx.h"
#include <iostream.h>

void nixu(double *,int);

void main()
{
int elementsize=5;
double d[]={6.2,6.9,7.3,3.2,5.8};
double *p=d;
nixu(p,elementsize);
}

void nixu(double* pnixu,int size)
{
double temp;

for(int x=size-1;x>=1;x--,pnixu++)
{
for(int i=x;i>=1;i--)
{

if((*(pnixu+i))>(*(pnixu+i-1)))
{
temp=(*(pnixu+i-1));
(*(pnixu+i-1))=(*(pnixu+i));
(*(pnixu+i))=temp;
}
}
}
pnixu=pnixu-4;
for(int k=0;k<=size-1;k++)
{
cout<<(*(pnixu+k))<<endl;
}
}
记得加分啊。
bankhank 2003-09-12
  • 打赏
  • 举报
回复
要注意啊,是double型的啊,比较是用相减比较好
locky1982 2003-09-12
  • 打赏
  • 举报
回复
这个问题是比较简单的
你去c书上看看
就有了
!!
WuYL7812 2003-09-12
  • 打赏
  • 举报
回复
#include <algorithm>

sort(d, d+5);
liyong446 2003-09-12
  • 打赏
  • 举报
回复
我来告诉你吧,这是C语言
int i,j,k;
for(i=0;i<5;i++)
{
printf("%f",d[i]);
}
for(i=0;i<4;i++)
{
k=d[i];
for(j=i+1;j<5;j++)
{
if(d[j]>k)
{
k=d[j];
}
}
if(k!=d[i])
{d[j]=d[i];
d[i]=k;
}}
fengyun001 2003-09-12
  • 打赏
  • 举报
回复
先写一个比较大小的函数,再看数据结构课本上的例子应该可以解决的。
zzsu7710 2003-09-12
  • 打赏
  • 举报
回复
看看数据结构的书
pan7861 2003-09-12
  • 打赏
  • 举报
回复
没人知道吗

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧