| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 374 人关注过本帖
标题:大神们帮我看看这个程序出错在哪里
只看楼主 加入收藏
小君主
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-10-13
结帖率:0
收藏
已结贴  问题点数:20 回复次数:3 
大神们帮我看看这个程序出错在哪里
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<time.h>
void swap(int A[],int x,int y)
{
    int temp;
    temp=x;
    x=y;
    y=temp;
}
void pushdown(int first,int last,int A[])
{

    int r;
    r=first;
    while(r<=last/2)
        if(r==last/2 && last%2==0)
        {
            if(A[r]>A[2*r])
                swap(A,r,2*r);
            r=last;
        }
        else if(A[r]>A[2*r]&&A[2*r]<=A[2*r+1])
        {
            swap(A,r,2*r);
            r=2*r;
        }
        else if(A[r]>A[2*r+1]&&A[2*r+1]<A[2*r])
        {
            swap(A,r,2*r);
            r=2*r+1;
        }
        else r=last;
}
void sort(int n,int A[])
{
    int i;
    for(i=n/2;i>=1;i--)
        pushdown(i,n,A);
    for(i=n;i>=2;i--)
    {
        swap(A,1,i);
        pushdown(1,i-1,A);
    }
    for(i=0;i<10;i++)
    {
       printf("%d,",A[i]);
    }
}
void main()
{
    FILE *fp1,*fp2;
    int a=0,b=0,j,n=10,A[10];
    char ch;
    if((fp1=fopen("input.txt","r"))==NULL)
        printf("file open error.\n");
    if((fp2=fopen("output.txt","w"))==NULL)
        printf("file open error.\n");
        while((ch=fgetc(fp1))!=' ')
        {
            j=ch-48;
            a=a*10+j;
        }
        while((ch=fgetc(fp1))!=EOF)
        {
            j=ch-48;
            b=b*10+j;
        }
    srand((unsigned)time(NULL));
    for(int i=0;i<10;i++)
    {     
     A[i]=rand()%(b-a)+a;
     printf("%d,",A[i]);
    }
   sort(n,A);
   fprintf(fp2,"伪随机数序列为:\n");
   for(i=0;i<10;i++)
   {
       fprintf(fp2,"%d,",A[i]);
   }
   fprintf(fp2,"堆排序序列为:\n");
      for(i=0;i<10;i++)
   {
       fprintf(fp2,"%d,",A[i]);
   }
   fclose(fp1);
   fclose(fp2);
   getchar();
}


出来的伪随机数没有按最小堆排序,求解,跪谢!
搜索更多相关主题的帖子: include 
2013-10-13 22:58
zhaogay
Rank: 7Rank: 7Rank: 7
来 自:宫
等 级:黑侠
帖 子:151
专家分:586
注 册:2013-10-10
收藏
得分:10 
A数组在sort里,都没有对其有赋值操作

好好学习,天天想上
2013-10-13 23:12
小君主
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-10-13
收藏
得分:0 
回复 2楼 zhaogay
有啊,在main函数里面,给A数组赋值是产生的伪随机数
2013-10-14 22:17
hh373231690
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:67
专家分:138
注 册:2012-10-13
收藏
得分:10 
请问 你确定你的swap函数有作用?
2013-10-15 09:46
快速回复:大神们帮我看看这个程序出错在哪里
数据加载中...
 
   



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

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