| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 373 人关注过本帖
标题:排序问题
只看楼主 加入收藏
曼珠沙华
Rank: 2
来 自:广东
等 级:论坛游民
帖 子:121
专家分:98
注 册:2009-5-21
结帖率:100%
收藏
 问题点数:0 回复次数:0 
排序问题
程序代码:
#include "top.h"
/*按价格排序*/
void sort_pri()
{
    FILE *fp1;
    int i,j;
    books *b;
    books temp;
    float n1,n2;

    b = (books *)calloc(count, sizeof(books));            //初始化数组
  
    if( (fp1 = fopen("books.dat", "rb")) == NULL)
    {
        printf("打开失败!");
        exit(0);
    }

    count = 0;
    fread(&temp,sizeof(books),1,fp1);
    while( fread(&temp,sizeof(books),1,fp1) != 0 )
    {
        count++;
    }
    fseek(fp1,0,0);

    for( i = 0; i < count; i++)
        fread(&b[i],sizeof(books),1,fp1);
    for( i = 0; i < count - 1; i++ )
        for( j = 0; j < count - i - 1; j++)
        {
            n1 = (float)atof(b[j].price);
            n2 = (float)atof(b[j + 1].price);
            if( n1 > n2 )
            {
                temp = b[j];
                b[j] = b[j + 1];
                b[j + 1] = temp;
            }
        }

    printf("\n\t\t\t\t排序后的书目\n");
    display();

    for( i = 0; i < count; i++ )
    {
        printf("%-8ld%-12s%-12s%-8d%-24s%-10d%-s\n",b[i].record_num,b[i].book_name,b[i].author_name,b[i].classify_num,b[i].publish_add,b[i].publish_data,b[i].price);
    }
    getch();
    fclose(fp1);

    free(b);
}

books 数据结构,图书类型
count 图书数目


各位大虾,请帮忙看一下这段代码。。。。
这段代码,能调试,也能运行,可是在完成排序之后,系统却提示错误。。。

可是如果我不加一下这段代码
程序代码:
    count = 0;
    fread(&temp,sizeof(books),1,fp1);
    while( fread(&temp,sizeof(books),1,fp1) != 0 )
    {
        count++;
    }
    fseek(fp1,0,0);
那么程序运行与排序没有问题,可是却不能统计图书数目,造成没有任何信息输出。。。

谢谢了,帮忙看看错在哪里。。
搜索更多相关主题的帖子: include count 
2010-01-20 17:48
快速回复:排序问题
数据加载中...
 
   



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

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