import java.util.*;
public class Main {
public static void main(String [] args){
Scanner myScanner =new Scanner(System.in);
int monthList[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int year = 0, month = 0, day = 0, sum = 0;
while(myScanner.hasNext()){
String s = myScanner.nextLine();
String sArr[] = s.split("/");
year = Integer.valueOf(sArr[0]);
month = Integer.valueOf(sArr[1]);
day = Integer.valueOf(sArr[2]);
sum = 0;
if ((0 == year % 4 && year % 100 != 0) || (0 == year % 400)){
monthList[1] = 29;
}
for(int i = 1; i < month; i++){
sum += monthList[i];
}
sum += day;
System.out.println(sum);
}
}
}
你的下标是从0开始的,按照你的思路,应该是加到上一个月的(即month-2)才对。你自己可以试一下输入2月的数据,看一下是不是有问题
for(int i = 0; i < month - 1; i++){
sum += monthList[i];
}
多组输入二月改成29不计算完改回来,下一次计算不就可能出错了