| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 619 人关注过本帖
标题:c语言统计排序问题
只看楼主 加入收藏
cxy459508381
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2014-9-15
结帖率:0
收藏
已结贴  问题点数:20 回复次数:9 
c语言统计排序问题
要求:按时间段(可以每2小时为一段)对不同类型场地的租用情况进行 排序
txt表格:
图片附件: 游客没有浏览图片的权限,请 登录注册

site就是场地
主程序我是这么写的:
struct yonghu
{
    char gender;
    int age;
    int id;
    int amount;
    char tss[10];
    int starttime;
    int endtime;
    int site;
    int pay;
};
struct paixu1
{
int site1;
int guan2;
};
    char tmp[512]; //定义一个临时变量,存储每一行数据
    int renshu=0,i=0,j=0;
    struct yonghu xinxi[1000];
    struct paixu1 xu[10];
    FILE *infile;
    infile=fopen("yonghuzonghexinxi.txt","r");
    if(infile==NULL)
    {
        printf("\nFailed to open the file");
        exit(1);
    }
    fgets(tmp, sizeof(tmp), infile ); //跳过首行
    printf("\nGender Age    ID          Amount        TSS           Time             site   pay\n");
        while( fgets( tmp, sizeof(tmp), infile ) )
    {
        char c_tmp[128];
        sscanf( tmp,"%c %d %d %d %s %d-%d %d %d", &(xinxi[renshu].gender), &(xinxi[renshu].age),&(xinxi[renshu].id),&(xinxi[renshu].amount),&xinxi[renshu].tss,&xinxi[renshu].starttime,&xinxi[renshu].endtime,&xinxi[renshu].site,&xinxi[renshu].pay);
        printf("%c      %d     %d      %d             %s           %d-%d         \t%d   \t%d\n",xinxi[renshu].gender,xinxi[renshu].age,xinxi[renshu].id,xinxi[renshu].amount,xinxi[renshu].tss,xinxi[renshu].starttime,xinxi[renshu].endtime,xinxi[renshu].site,xinxi[renshu].pay);
        renshu++;
    }
    fclose(infile);
printf("\n以下为按每2小时为一段对不同类型场地的租用情况进行排序");
int shijian1=0,shijian2=2,guan2[10],a,b;
for(i=0;i<6;i++)
{
xu[i].guan2=0;
xu[i].site1=i+1;
}
for(shijian1=0,shijian2=2;shijian2<=24;shijian1+=2,shijian2+=2)
{
for(i=0;i<=renshu;i++)
{
if(xinxi[i].endtime<=shijian1||xinxi[i].starttime>=shijian2)
break;
else
switch(xinxi[i].site)
{
case 1:
xu[0].guan2+=1;
break;
case 2:
xu[1].guan2+=1;
break;
case 3:
xu[2].guan2+=1;
break;
case 4:
xu[3].guan2+=1;
break;
case 5:
xu[4].guan2+=1;
break;
case 6:
xu[5].guan2+=1;
break;
}
}
printf("%d",xu[0].guan2);
   for(i=0;i<6;i++)
{
for(j=1;j<6;j++)
{
if(xu[i].guan2<xu[j].guan2)
{
a=xu[j].guan2;
b=xu[j].site1;
xu[j].guan2=xu[i].guan2;
xu[j].site1=xu[i].site1;
xu[i].guan2=xu[j].guan2;
xu[i].site1=xu[j].site1;
}
}
}
printf("\n时间段:%d-%d\n",shijian1,shijian2);
for(i=0;i<6;i++)
{
printf("\n第%d场馆使用人数为%d\n",xu[i].site1,xu[i].guan2);
}
}

输出是:
图片附件: 游客没有浏览图片的权限,请 登录注册

后面的时间段基本都是这样
求哪里错了,帮我修改下
搜索更多相关主题的帖子: amount 时间段 主程序 c语言 统计 
2014-09-15 23:17
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:4 
你的程序没法看,也不知道你口中说的错是什么,为什么不说说你预期什么结果、现在哪里不符了,倒反过来问人哪里错了,那是应该你告诉人的啊。

授人以渔,不授人以鱼。
2014-09-15 23:23
cxy459508381
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2014-9-15
收藏
得分:0 
回复 2 楼 TonyDeng
应该就是If的条件有问题,预期是计算出每个site出现的次数,然后降序输出
2014-09-15 23:29
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你这样做不足以达到目的的,这个程序没你想象中那么简单,这么点代码不行。

授人以渔,不授人以鱼。
2014-09-15 23:34
cxy459508381
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2014-9-15
收藏
得分:0 
回复 4 楼 TonyDeng
为什么不行,我把文件中的数据提出存到结构中,题目要按照时间段,我就分2个小时为一段,比如0-2这个时间段,如果time是0-5,那就是包含在里面,对应的site的使用数+1,最后用对换两个数的思想排序。
2014-09-15 23:56
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
租用时间跨统计时段呢?你这个输出形式看得清楚结果吗?排序的代码对吗?这些每一个步骤都检验过没有?

授人以渔,不授人以鱼。
2014-09-16 00:02
fogmaple
Rank: 4
来 自:江西省赣州市于都县
等 级:业余侠客
威 望:1
帖 子:119
专家分:233
注 册:2014-7-28
收藏
得分:4 
太错乱 了
2014-09-16 00:20
随风而行lulu
Rank: 2
等 级:论坛游民
帖 子:59
专家分:60
注 册:2014-9-6
收藏
得分:4 
要花点时间才能看懂别人的程序。我是菜鸟,看懂了前面一半的内容。
2014-09-16 03:15
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:4 
2014-09-16 07:55
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:4 
结构体排序  如果怕出现错误  使用冒泡排序

DO IT YOURSELF !
2014-09-16 08:37
快速回复:c语言统计排序问题
数据加载中...
 
   



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

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