我记得我这道题已然是不正确的,但是我也不知道是哪出现问题了,热烈欢迎大佬来指点或探讨。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();// 输入测试数据组数
int []num =new int[T]; // 输入测试数据个数sc.nextInt();
int[] Maxsum = new int[T];// 数据和的最大值
int[] first = new int[T];// 存放每次测试的起始位置
int[] end = new int[T];// 存放每次测试的末端位置
// 循环输入每组测试具体数据
for (int i = 0; i < T; i++) {
int sum = 0;// 数据的和
first[i] = 0;
end[i] = 0;
Maxsum[i] = 0;
int first1 = 0;
num[i]=sc.nextInt();
int[] data = new int[num[i]];
for (int j = 0; j < num[i]; j++) {
data[j] = sc.nextInt();
sum += data[j];
if (Maxsum[i] < sum) {
Maxsum[i] = sum;
end[i] = j + 1;
first[i] = first1 + 1;
}
if (sum < 0) {
sum = 0;
first[i] = first1 + 1;
}
}
}
for (int j = 0; j < T; j++) {
System.out.println("Case " + (j + 1) + ":");
System.out.println(Maxsum[j] + " " + first[j] + " " + end[j]);
}
}
}
他们说,编程需要沉淀...