| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY 
共有 217 人关注过本帖
标题:C语言链表选择排序错误
收藏  订阅  推荐  打印 
忆馨亦伊
Rank: 1
等级:新手上路
帖子:27
积分:432
注册:2008-8-26
C语言链表选择排序错误

void sort(TS **h) /* 选择排序算法 */ =====这里为什么会有参数列表错误为什么啊
{
TS *h1,*p,*q,*r,*s;
h1=p=(TS *)malloc(sizeof(TS));
p->next=*h;
while(p->next) {
q=p->next;
r=p;
while(q->next) {
if(q->next->valuenext->value)
r=q;
q=q->next;
}
if(r!=p) {
s=r->next;
r->next=s->next;
s->next=p->next;
p->next=s;
}
p=p->next;
}
*h=h1->next;
free(h1);
}
搜索更多相关主题的帖子: 链表  C语言  选择  
2008-9-6 19:48
God_WangY
Rank: 1
等级:新手上路
帖子:27
积分:386
注册:2008-9-6

TS是什么?
2008-9-6 19:52
God_WangY
Rank: 1
等级:新手上路
帖子:27
积分:386
注册:2008-9-6

要发就要将全部的程序发上来
不然不好分析
2008-9-6 19:53
忆馨亦伊
Rank: 1
等级:新手上路
帖子:27
积分:432
注册:2008-8-26

nclude<stdio.h>
#include<stdlib.h>
typedef struct STRUCT {
int value;
struct STRUCT *next;
}TS;
main()
{
#define N 9
int a[N],i;
TS *head,*p;
TS *CreateLink(int *,int);
void sort(TS **);
randomize();
for(i=0;ia=random(9);
head=CreateLink(a,N);
for(p=head;p;p=p->next)
printf(“%-2d“,p->value);
putchar(‘\n‘);
sort(&head);
for(p=head;p;p=p->next)
printf(“%-2d“,p->value);
getchar();
}
void sort(TS **h) /* 选择排序算法 */
{
TS *h1,*p,*q,*r,*s;
h1=p=(TS *)malloc(sizeof(TS));
p->next=*h;
while(p->next) {
q=p->next;
r=p;
while(q->next) {
if(q->next->valuenext->value)
r=q;
q=q->next;
}
if(r!=p) {
s=r->next;
r->next=s->next;
s->next=p->next;
p->next=s;
}
p=p->next;
}
*h=h1->next;
free(h1);
}
TS *CreateLink(int *a,int n)
{
int i;
TS *h,*p;
h=NULL;
for(i=n;i>0;i--) {
p=(TS *)malloc(sizeof(TS));
p->value=a[i-1];
p->next=h;
h=p;
}
return h;
}
2008-9-6 20:05
cosdos
Rank: 6Rank: 6
来自:ShangHai
等级:金牌会员
威望:1
帖子:1377
积分:14374
注册:2007-6-19

忆馨亦伊 在 2008-9-6 20:05 的发言:
main()
{
#define N 9
int a[N],i;
TS *head,*p;
TS *CreateLink(int *,int);
void sort(TS **);
randomize();
for(i=0;ia=random(9);   // 这个 for 不完整
for()????

—>〉Sun〈<—
2008-9-6 21:22
cosdos
Rank: 6Rank: 6
来自:ShangHai
等级:金牌会员
威望:1
帖子:1377
积分:14374
注册:2007-6-19

// 修改了排序算法
// 使用的随即函数不适标准的,所以用标准的写了两个
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define randomize() srand((unsigned int)time(NULL))
#define random(num) (rand() % (num))
/* 与上面的宏相同功能
void randomize(void)
{
    srand((unsigned int)time(NULL));
}

int random(int num)
{
    return rand() % num;
}
*/

#define N 9

typedef struct STRUCT {
    int value;
    struct STRUCT * next;
}TS;


TS * CreateLink(int * a, int n);
void sort(TS * ppHead);

int main(void)
{
    int a[N],
        i;
        
    TS * head,
       * p;

    randomize();
   
    for(i = 0; i < N; i++)
        a[i] = random(9);
        
    head = CreateLink(a, N);
   
    for(p = head; p; p = p->next)
        printf("%-2d", p->value);
        
    putchar('\n');
   
    sort(head);
   
    for(p = head; p; p = p->next)
        printf("%-2d", p->value);

    getchar();
    return 0;
}

void sort(TS * pHead) /* 选择排序算法 */
{
    int temp;
   
    TS *i, *j;
   
    if(pHead == NULL)
        return;

    for(i = pHead; i->next != NULL; i = i->next)
    {
        for(j = i->next; j != NULL; j = j->next)
        {
            if(i->value > j->value)
            {
                temp = i->value;
                i->value = j->value;
                j->value = temp;
            }
        }
    }
}

TS *CreateLink(int * a, int n)
{
    int i;
    TS * h, * p;
    h = NULL;
    for(i = n; i > 0; i--)
    {
        p=(TS *)malloc(sizeof(TS));
        p->value=a[i-1];
        p->next=h;
        h=p;
    }
    return h;
}


[ 本帖最后由 cosdos 于 2008-9-6 22:44 编辑 ]

—>〉Sun〈<—
2008-9-6 22:35
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.047228 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved