)的题目记得画图,多试几种可能性; 参考代码: //函数的输入是指针*a,所以函数内的操作都用指针形式; int i,j,cnt1=0,cnt2=0,left,right; int water=0; int max; for(i=1;i= *(a+i) && *(a+i+1) >= *(a+i)) { left = *(a+i); right = *(a+i); max=*(a+i); cnt1=i; for(j=i-1;j>=cnt2;j--) { if(left<*(a+j)) { left = *(a+j); cnt1 = j; } } cnt2=i; for(j=i+1;j=left) break; } } if(left>right) max=right; else max=left; for(j=i;j>cnt1;j--) { if(max>*(a+j)) water += max - *(a+j) ; } for(j=i;j*(a+j)) water += max - *(a+j) ; } water += *(a+i)-max; i = cnt2; } } -------------------------------------------------- 码量不大,但是细节很多,我打了一晚上甚至熬夜了…………现在还用C,老土不老土OK"。
49英镑)。我们将继续共同建设公司,并保持我们作为该地区领先航空服务提供商的地位。她目前正在非洲各地旅行,寻找有助于减轻饥饿和贫困的创新,并每天在世界观察研究所的滋养地球博客上发表博客。