我这个代码哪里错了吗,提交一直是wronganswer?(本人用的是c语言)
#include<stdio.h>
int main ()
{ int T,C,N,i,j,s,e,m,p;
scanf("%d",&T);
int max[T],start[T],end[T];
for (C=1;C<=T;C++)
{scanf("%d",&N);
int a[100001]={0},f[100001]={0},b[100001]={0};
for (i=1;i<=N;i++)
{scanf("%d",&a[i]);
f[i]=a[i];
b[i]=i;}
for (i=2;i<=N;i++)
{ j=i-1;
if (f[j]>=0)
{f[i]=f[j]+a[i];
b[i]=b[j];}
}
m=1,e=1,s=1;
for (p=m+1;p<=N;p++)
{if (f[m]<f[p])
{ f[m]=f[p];
e=p; s=b[p];}
}
max[C]=f[m];
start[C]=s;
end[C]=e;
printf("Case:%d ",C);
printf("%d %d %d ",max[C],start[C],end[C]);
if (C!=T)
printf( " ");
}
return 0;
}
不知你考试系统用的什么环境(编译器)
传统的c语言不支持动态下标的,且变量必须定义在任何代码之前
只有C99以上的编译器才支持你的程序
scanf("%d",&T);
int max[T],start[T],end[T];
这个格式要编译器支持的,建议改用动态数组
热门标签: