快速排序程序,貌似是结构体的问题!!!!!

woaifzb 2010-09-13 07:24:56
快速排序的程序
编译时出现错误,不知道错在哪里,个人觉得是结构体的问题,请高手指教!

源程序:
#include<stdio.h>
#include<string.h>
#define MAXNODE 1000


typedef struct
{
key; /*关键码*/
}RecNode;
RecNode r[MAXNODE];




int Partition(RecNode r[],int low,int high) /*r[]存放输入的待排记录,函数实现一趟排序,并返回支点最终位置*/
{
if(low>high) return 0;
if(low==high) return low; /*一趟排序结束*/
r[0]=r[low]; /*缓存支点记录*/
while(low<high)
{
while(low<high&&r[high].key>=r[0].key) high--;
if(low<high)
{
r[low]=r[high];
low++;
}
while(low<high&&r[low].key<r[0].key) low++;
if(low<high)
{
r[high]=r[low];
high--;
}
}
r[low]=r[0];
return low;
}



void Quick_sort(RecNode r[],int m,int n)
{
int i;
i=Partition(r,m,n);
Quick_sort(r,m,i-1); /*对前一组进行排序*/
Quick_sort(r,i+1,n); /*对后一组进行排序*/
}

/*
int Strlen(RecNode *s)
{
int i;
for(i=0;s[i]!='\0';)
i++;
return i;
}
*/

void main()
{
int node,i,j,n=1;
int index,list;
RecNode r[MAXNODE];
/*存放输入的待排序数*/
index=0;
list=1;
printf("input string:");
scanf("%d",&node);
while(node!='#')
{
r[list]=node;
list=list+1;
scanf("%d",&node);
}
Quick_sort(r,1,n);
printf("\n the final sorting result:");
for(i=0;i<index;i++)
{
printf("%d ",list[i]);
}
}

















...全文
151 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
BingoTime 2012-06-16
  • 打赏
  • 举报
回复
虽然看不懂。。还是学习了。。
BingoTime 2012-06-16
  • 打赏
  • 举报
回复
虽然看不懂,还是看看。。当是学习了。
woaifzb 2010-09-13
  • 打赏
  • 举报
回复
谢谢楼上,可是改了之后还是不行,应该是输入的问题,我输入的时候存储在r【】里面的数跟输入的不一样,就在Quick_sort函数里面死循环了,我想用gets函数输入,可是他是对char型的数输入,会不会跟结构体的数据类型不一样而出错呢
macrojj 2010-09-13
  • 打赏
  • 举报
回复

typedef struct
{
key; /*关键码*/
}RecNode;

啥子意思呢

里面只有一个key?
pengzhixi 2010-09-13
  • 打赏
  • 举报
回复
scanf("%d",&node);//如果key是char类型,那么就应该输入字符类型,而不是int,node的类型改掉 char node; scanf("%c",&node);

while(node!='#')
{
r[list]=node;//这里是 r[list].key=node;
woaifzb 2010-09-13
  • 打赏
  • 举报
回复
哈,疏忽了,应该是char型吧,不过我觉得主要的问题好像不是这个哦。。。
结构体应该有问题,跟输入的类型不一样,我不知道要怎么改,请大家说下
东大坡居士 2010-09-13
  • 打赏
  • 举报
回复
顶楼上~~~~~~
mengde007 2010-09-13
  • 打赏
  • 举报
回复

typedef struct
{
key; /*关键码*///what's the type of it ?
}RecNode;

70,037

社区成员

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

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