标题:浙大ACM题在提交OJ以后出现Segmentation Fault,请各路大神看看问题在哪
取消只看楼主
jackjlc
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-3-3
结帖率:100%
已结贴  问题点数:20 回复次数:6 
浙大ACM题在提交OJ以后出现Segmentation Fault,请各路大神看看问题在哪
#include<stdio.h>

int main()
{int n,z,s[101],count,set[10][100],p[10],x,y,sum,pt,i,j;
 float average;
 scanf("%d",&n);
 for(z=0;z<n;z++)
 {for(i=1;i<101;i++) s[i]=0;
  count=1;
  scanf("%d %d %d %d %d %d",&set[1][0],&set[1][1],&set[1][2],&set[1][3],&set[1][4],&set[1][5]);
  p[1]=5;
  for(i=0;i<6;i++) s[set[1][i]]=1;
  while(1)
  {pt=0;
   for(i=1;i<=count/2+1;i++)
    {j=count-i+1;
     for(x=0;x<=p[i];x++)
      for(y=0;y<=p[j];y++)
      {sum=set[i][x]-set[j][y];
       if(sum<0) sum=-sum;
       if(s[sum]==0)
       {s[sum]=count+1;
        set[count+1][pt]=sum;
        pt++;
       }
      }
    }
   for(i=1;i<=count/2+1;i++)
   {j=count-i+1;
    for(x=0;x<=p[i];x++)
     for(y=0;y<=p[j];y++)
     {sum=set[i][x]+set[j][y];
      if(sum>100) continue;
      if(s[sum]==0)
      {s[sum]=count+1;
       set[count+1][pt]=sum;
       pt++;
      }
     }
   }
   count++;
   p[count]=pt-1;
   sum=0;
   for(i=1;i<count+1;i++)
    sum=sum+p[i]+1;
   if(sum==100) break;
      
  }
  sum=0;
  for(i=1;i<101;i++)
   sum=sum+s[i];
  average=sum*1.0/100;
  printf("%.2f %d\n",average, count);
 }
 return 0;   
}
我在dev-c++里编的,运行了能得出正确结果,交了就是AC不了,求指点,题号是1558

[ 本帖最后由 jackjlc 于 2012-3-4 10:35 编辑 ]
搜索更多相关主题的帖子: 浙大 101 average include count 
2012-03-03 15:42
jackjlc
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-3-3
得分:0 
回复 2楼 有容就大
什么网址?题目吗?在这http://acm.zju.
2012-03-03 16:13
jackjlc
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-3-3
得分:0 
求大神们关注啊。。
2012-03-03 16:41
jackjlc
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-3-3
得分:0 
回复 5楼 有容就大
我后面没用到s[0]呐。。我也试了试把s[0]=0加进去了。。还是不行
2012-03-03 17:47
jackjlc
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-3-3
得分:0 
回复 4楼 jackjlc
我终于想到了。。是我set数组设的太少了,我改成set[30][100]就过了,看来我是没想到非常刁钻的数据会用到跟多数组,还是谢谢你了
2012-03-03 20:27
jackjlc
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-3-3
得分:0 
回复 10楼 laoyang103
意思是一种货币有6个不同的面额,比如人民币是有1元、5元、10元、20元、50元、100元(貌似有2元的,没关系,我就是举个例子),现在是求,给你6个数,来代表这六种面额,然后用这六种面额的货币来计算出1-100元最少要用几个货币来表示,比如,2最少要1+1,就是两个1元来表示,4最少可以用5-1,也是两个(可以用减法,意思是你给出5元,别人找你1元),然后让你求出1-100元平均每个数用了几个货币,还要输出1-100中用的货币数最多的那个数要用几个货币
2012-03-04 10:29
jackjlc
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-3-3
得分:0 
回复 12楼 laoyang103
我用的动态规划做的,问题已经解决~把set和p数组扩成set[30][100],和p[30]就过了,之前是没想到一些刁钻的数据会不够用,谢谢关注了
2012-03-04 11:58



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




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

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