Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Help:Runtime Error多谢虽然程序编的比较龌龊,但自己测验是对的。提交时总显示Runtime Error,求助。 不胜感激。 #include<stdio.h> int q2(int a){//给出3*3后剩余的位置数,求出2*2可放多少 int key; switch(a){ case 1:key=1;break; case 2:key=3;break; case 3:key=5;break; case 4:key=0;break; }return key; } int q1(int a,int b){//给出剩余的1*1位置数b,求出是否需要多加箱子 int n,c,j; if (a>b){ n=(a-b); j=n%36; if (j=0) c=n/36; else c=n/36+1;} else c=0; return c; } int num(int a,int b,int c,int d,int e,int f){ int number[6]; int z,i,j,p,q,n; number[5]=f;//6*6 number[4]=e;//5*5 number[3]=d;//4*4 j=c/4;i=c%4; if(i==0)number[2]=j; else number[2]=j+1;//3*3没放满时 p=number[3]*5+q2(4-i);//p:2*2可放的位置数 i=0?让i不等于0 if(p>=b)//当无需为了2*2多增加箱子时 {number[1]=0; if((number[3]*5)>b)//4*4的已经足够了 q=number[4]*11+(number[3]*5-b)*4+9*(4-i);//q:可放1*1位置数(5*5+4*4+3*3) else q=number[4]*11+9*(4-i)-4*(b-number[3]*5);//q:5*5+3*3中还可放的数目 number[0]=q1(a,q); } else//处理需要为2*2多加箱子的情况 {q=b-p; n=q%9;//q是多出的2*2箱子的数目 if(n==0) {number[1]=q/9;j=number[4]*11+(4-i)*9-q2(4-i)*4;} else {number[1]=q/9+1;//求出为了2*2而多加的箱子数 j=number[4]*11+(4-i)*9-q2(4-i)*4+(9-n)*4;}//j:可放1*1的位置数 number[0]=q1(a,j); } z=0; for(i=0;i<6;i++) z=z+number[i]; return z; } void main(){ int sum[10]; int a,b,c,d,e,f,i=0,j; scanf("%d %d %d %d %d %d",&a,&b,&c,&d,&e,&f); do{sum[i]=num(a,b,c,d,e,f); scanf("%d %d %d %d %d %d",&a,&b,&c,&d,&e,&f); i++;}while(a+b+c+d+e+f!=0); for(j=0;j<i;j++) printf("%d\n",sum[j]); } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator