| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 353 人关注过本帖
标题:帮看下哪里出错了
只看楼主 加入收藏
someday
Rank: 3Rank: 3
来 自:保定
等 级:论坛游侠
帖 子:83
专家分:116
注 册:2010-10-8
结帖率:70.59%
收藏
已结贴  问题点数:20 回复次数:3 
帮看下哪里出错了
没有错,也没有警告,就是运行不了,请各位大侠们看下哪里出错了
/*快折半排序算法*/
#include<stdio.h>
#include<stdlib.h>
#define max_capacity 20
#define add_space 10
typedef struct sign
{
    int* a;
    int length;
    int pl;
}sign;

int* Initarray(int *da,sign *mark)/*建立原序列*/
{
    int i,d;
    printf("每输入一个数据后按回车键确定,原序列输入完输入任意负数退出输入");
    (*mark).pl=1;
    i=1;
    (*mark).length=max_capacity;
    scanf("%d",&d);
    while(d>=0)
    {
        da[i]=d;
        i=(++(*mark).pl);
        if((*mark).pl>=(*mark).length)
        {
            da=(int *)realloc(da,((*mark).length+add_space)*sizeof(int));
            if(!da)
                printf("追加空间失败");
            else
                (*mark).length=(*mark).length+add_space;
        }
        scanf("%d",&d);
    }
    printf("原序列为:\n");
    for(i=0;i<(*mark).pl;i++)
        printf("%d ",da[i]);
    printf("\n长度是 %d",(*mark).pl);
    return da;
}
   
void BInsertSort(int *a,sign *mark)//折半排序
{
    int i,j,low,high,mid;
    for(i=2;i<=(*mark).pl;i++)
    {
        a[0]=a[i];
        low=1;
        high=i-1;
        while(low<=high)
        {
            mid=(low+high)/2;
            if(a[0]<a[mid])
                high=mid-1;
            else
                low=mid+1;
        }
        for(j=i-1;j>=high+1;--j)
            a[j+1]=a[j];
        a[high+1]=a[0];
    }
    printf("\n排好是序列为:\n");
    for(i=1;i<(*mark).pl;i++)
        printf("%d ",a[i]);
}

   

int main(void)
{
    sign *mark;
    int da[max_capacity];
    printf("请输入原序列(正数)\n");
    (*mark).a=Initarray(da,mark);
    BInsertSort((*mark).a,mark);
    return 0;
}
2011-01-03 18:12
aaronhexin
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:67
专家分:199
注 册:2010-12-6
收藏
得分:20 
在main函数的(*mark).a=Initarray(da,mark);之前加上一句
mark = (sign *)malloc(sizeof(sign));
分配一个存储空间。
2011-01-03 18:22
someday
Rank: 3Rank: 3
来 自:保定
等 级:论坛游侠
帖 子:83
专家分:116
注 册:2010-10-8
收藏
得分:0 
回复 2楼 aaronhexin
一语点醒梦中人,多谢朋友了
2011-01-03 20:36
ququguoguo
Rank: 2
等 级:论坛游民
帖 子:73
专家分:90
注 册:2010-10-20
收藏
得分:0 
我是来看看的
2011-01-03 22:31
快速回复:帮看下哪里出错了
数据加载中...
 
   



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

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