标题:ACM HDU1263:水果
只看楼主
弓箭手789
Rank: 1
等 级:新手上路
帖 子:11
专家分:1
注 册:2013-7-31
结帖率:100%
 问题点数:0 回复次数:4 
ACM HDU1263:水果
我的代码输出格式没有问题,其他人和我同格式已经通过了,已经用多组数据测试过,均可显示正确答案,但在上传时就是不能通过,希望大家帮忙看看,谢谢了。

描述:夏天来了~~好开心啊,呵呵,好多好多水果~~
Joe经营着一个不大的水果店.他认为生存之道就是经营最受顾客欢迎的水果.现在他想要一份水果销售情况的明细表,这样Joe就可以很容易掌握所有水果的销售情况了.
输入:第一行正整数N(0<N<=10)表示有N组测试数据.
每组测试数据的第一行是一个整数M(0<M<=100),表示工有M次成功的交易.其后有M行数据,每行表示一次交易,由水果名称(小写字母组成,长度不超过80),水果产地(小写字母组成,长度不超过80)和交易的水果数目(正整数,不超过100)组成.
输出:对于每一组测试数据,请你输出一份排版格式正确(请分析样本输出)的水果销售情况明细表.这份明细表包括所有水果的产地,名称和销售数目的信息.水果先按产地分类,产地按字母顺序排列;同一产地的水果按照名称排序,名称按字母顺序排序.
两组测试数据之间有一个空行.最后一组测试数据之后没有空行.
例子输入:
1
5
 apple shandong 3
 pineapple guangdong 1
 sugarcane guangdong 1
pineapple guangdong 3
pineapple guangdong 1
例子输出:
guangdong
   |----pineapple(5)
   |----sugarcane(1)
 shandong
   |----apple(3)



代码如下:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct fr{
       char style[80];
       char place[80];
       int num;
       }e[100],ce;
char pc[100][80],pp[80],flag;
int main()
{
    int i,j,k,n,a,b,l,t;
    scanf("%d",&n);
    for (l=1;l<=n;l++)
    {
        for (j=0;j<100;j++)//数组初始化
        {
            for (k=0;k<80;k++)
            {
                e[j].style[k]='\0';
                e[j].place[k]='\0';
            }
            e[j].num=0;
        }
        for (j=0;j<100;j++)//数组初始化
          for (k=0;k<80;k++)
          pc[j][j]='\0';
          scanf("%d",&a);
        for (j=0;j<a;j++)
            scanf("%s %s %d",e[j].style,e[j].place,&e[j].num);
        b=a;
        for (j=0;j<b;j++)//压缩,将种类和地址相同的项目数目相加
        {
            for (k=j+1;k<b;k++)
            {
                if (!strcmp(e[j].style,e[k].style)&&!strcmp(e[j].place,e[k].place))
                {
                    e[j].num+=e[k].num;
                    e[k].num=0;
                }
            }
        }
        b=0;
        t=0;
        for (j=0;j<a;j++)//将地址采集进pc组
            {
              flag=0 ;                        
              if (e[j].num)
              {
                t++;//t为统计的不同项数
                for (k=0;k<b+1;k++)//此处b为不同地址数
                    if (!strcmp(e[j].place,pc[k])){flag=1;break;}           
               if (!flag) strcpy(pc[b++],e[j].place);
              }
            }//完毕
        for (i=0;i<a;i++)//对地址组pc排序
         for (j=i+1;j<b;j++)
            if(strcmp(pc[i],pc[j])>0){strcpy(pp,pc[i]);strcpy(pc[i],pc[j]);strcpy(pc[j],pp);}
        for (i=0;i<a;i++)//对相同地址进行水果种类的排序
         for (j=i+1;j<a;j++)
         {
            if (e[j].num!=0&&!strcmp(e[i].place,e[j].place))
            if(strcmp(e[i].style,e[j].style)>0){ce=e[i];e[i]=e[j];e[j]=ce;}
         }
        for (i=0;i<b;i++)//按地址顺序输出
        {
            printf ("%s\n",pc[i]);
            for (j=0;j<80;j++)
                if (e[j].num&&!strcmp(pc[i],e[j].place))
                   printf("   |----%s(%d)\n",e[j].style,e[j].num);
        }
        if (n-l>0)printf("\n");
    }
    return 0;
}
搜索更多相关主题的帖子: 正确答案 水果店 明细表 正整数 经营 
2013-08-01 18:32
蚕头燕尾
Rank: 10Rank: 10Rank: 10
来 自:Gryffindo
等 级:贵宾
威 望:12
帖 子:734
专家分:1546
注 册:2013-3-24
得分:0 
报的是哪种错误类型?

学习编程,为的是表达自己的思想,而不是被别人的思想所禁锢。要先明白自己想干嘛,而不要先问别人让你干嘛。               

                                                                                                                    Black Cat      Hello Tomorrow~
2013-08-02 09:11
弓箭手789
Rank: 1
等 级:新手上路
帖 子:11
专家分:1
注 册:2013-7-31
得分:0 
回复 2楼 蚕头燕尾
wrong answer
2013-08-02 17:22
蚕头燕尾
Rank: 10Rank: 10Rank: 10
来 自:Gryffindo
等 级:贵宾
威 望:12
帖 子:734
专家分:1546
注 册:2013-3-24
得分:0 
printf("   |----%s(%d)\n",e[j].style,e[j].num);

这一句里的空格打的少了一个,是四个空格,你打了三个,改过来试试


学习编程,为的是表达自己的思想,而不是被别人的思想所禁锢。要先明白自己想干嘛,而不要先问别人让你干嘛。               

                                                                                                                    Black Cat      Hello Tomorrow~
2013-08-03 22:50
弓箭手789
Rank: 1
等 级:新手上路
帖 子:11
专家分:1
注 册:2013-7-31
得分:0 
回复 4楼 蚕头燕尾
您说的没错,但是加上空格依旧不对
2013-08-05 10:46



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-418428-1-1.html




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

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