杭电1003编译出错,运行没错,但提交就Compilation Error了
include<stdio.h>intmaxSum(inta[],intn,int&begin,int&end){intsum=0;//用来保存最大子段和的值for(in...
include<stdio.h>
int maxSum(int a[],int n,int &begin,int &end){
int sum=0;//用来保存最大子段和的值
for (int i=0;i<n;i++)
for(int j=i;j<n;j++){
int temSum=0;//temSum保存每一次a[i]~a[j]的和,然后和当前最大子段和比较
for(int k=i;k<=j;k++)
temSum+=a[k];//计算a[i]~a[j]的和
if(temSum>sum){//如果发现更大的子段和,则更新sum的值,并保存当前最大子段和的开始和结尾下标
sum=temSum;
begin=i+1;
end=j+1;
}
}
return sum;
}
main()
{
int T,p,N,a[1000],i,j,sum=0,k=1,b,e;
scanf("%d",&T);
for(p=0;p<T;p++)
{
scanf("%d",&N);
for(i=0;i<N;i++)
scanf("%d",&a[i]);
sum=maxSum(a,N,b,e);
printf("Case %d:\n",k);
printf("%d %d %d\n",sum,b,e);
sum=0;
k++;
if(p<T-1)
printf("\n");
}
return 0;
} 展开
int maxSum(int a[],int n,int &begin,int &end){
int sum=0;//用来保存最大子段和的值
for (int i=0;i<n;i++)
for(int j=i;j<n;j++){
int temSum=0;//temSum保存每一次a[i]~a[j]的和,然后和当前最大子段和比较
for(int k=i;k<=j;k++)
temSum+=a[k];//计算a[i]~a[j]的和
if(temSum>sum){//如果发现更大的子段和,则更新sum的值,并保存当前最大子段和的开始和结尾下标
sum=temSum;
begin=i+1;
end=j+1;
}
}
return sum;
}
main()
{
int T,p,N,a[1000],i,j,sum=0,k=1,b,e;
scanf("%d",&T);
for(p=0;p<T;p++)
{
scanf("%d",&N);
for(i=0;i<N;i++)
scanf("%d",&a[i]);
sum=maxSum(a,N,b,e);
printf("Case %d:\n",k);
printf("%d %d %d\n",sum,b,e);
sum=0;
k++;
if(p<T-1)
printf("\n");
}
return 0;
} 展开
展开全部
你应该确认一下你所提交的地方所运行的平台和环境是什么?尽量和它保持一致,并把编译器的警告级别开到最高。
比如它是linux+gcc 4.5 而你是windows+vs2005,那么就可能导致这种问题。
你的main函数这么写显然会有点问题,应该写成这样:
int main( int argc, char* argv[] )
比如它是linux+gcc 4.5 而你是windows+vs2005,那么就可能导致这种问题。
你的main函数这么写显然会有点问题,应该写成这样:
int main( int argc, char* argv[] )
追问
加上int也没用,还有我提交的地方是杭电,不清楚它的平台和环境是什么
追答
每一个在线提交程序的站点都有练习方式的啊,发邮件去问清楚吧,然后把你的编译器设置成和它相同的版本就ok了。记住你的程序最后不要
杭电的OJ这里有个FAQ,它上面提到很多注意事项,仔细看看吧
http://acm.hdu.edu.cn/faq.php?lang=chs
另外可以发邮件给他们:
acm@hdu.edu.cn
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询