为了账号安全,请及时绑定邮箱和手机立即绑定

在VIJOS上用Java实现算法出现的问题

在VIJOS上用Java实现算法出现的问题

慕无忌1623718 2019-03-01 11:09:47
最后程序编译出现RUNTIME ERROR【网站提示】Runtime Error 不通过:程序运行时错误(如数组越界、被零除、运算溢出、栈溢出、无效指针等) 【问题】想必有人做过vijos这道题吧?不太清楚本人程序哪里出现了这样的问题?另本人还是小白,代码暴力破解...欢迎愿意的大神提供给更优方案哈~ 【以下为题目描述】 华华通过以下方式进行分析,首先将比赛每个球的胜负列成一张表,然后分别计算在11分制和21分制下,双方的比赛结果(截至记录末尾)。比赛规则和实际比赛规则相同, 在11分制下比分为10:11时还要继续比赛,直到分数差距达到2分;同理21分制下比分为20:21的时候也还要继续比赛。比如现在有这么一份记录,(其中W表示华华获得一分,L表示华华对手获得一分):WWWWWWWWWWWWWWWWWWWWWWLW在11分制下,此时比赛的结果是华华第一局11比0获胜,第二局11比0获胜,正在进行第三局,当前比分1比1。而在21分制下,此时比赛结果是华华第一局21比0获胜,正在进行第二局,比分2比1。如果一局比赛刚开始,则此时比分为0比0。你的程序就是要对于一系列比赛信息的输入(WL形式),输出正确的结果。格式 【输入格式】 每个输入文件包含若干行字符串(每行至多20个字母),字符串有大写的W、L和E组成,也许中间有若干个空格。其中E表示比赛信息结束,程序应该忽略E之后的所有内容,E后面可能有干扰文字。输出格式 输出由两部分组成,每部分有若干行,每一行对应一局比赛的比分(按比赛信息输入顺序)。其中第一部分是11分制下的结果,第二部分是21分制下的结果,两部分之间由一个空行分隔。 【样例输入1】 WWWWWWWWWWWWWWWWWWWWWWLWE 【样例输出1】 11:011:01:1 21:02:1限制 各个测试点1s 【以下为本人代码】 import java.util.Scanner; public class Main { public static void main(String[] args){ int i=0; int j=0; int a=0; int b=0; int num=0; Scanner scanner=new Scanner(System.in); String s1=scanner.nextLine(); String s2=scanner.nextLine(); String s=s1+s2; s=s.replace(" ", ""); System.out.println(s); char[] arr=s.toCharArray(); for(i=0;i<arr.length;i++){ if(arr[i]=='E'){ break; } num++; } char[] result=new char[num]; for(i=0;i<num;i++){ result[i]=arr[i]; } for(j=0;j<num;j++){ if(result[j]=='W') {a++;} if(result[j]=='L') {b++;} if(result[j]=='\n') {continue;} if(a==11||b==11&&Math.abs(a-b)>2){ System.out.println(a+":"+b); a=0; b=0; } if(j==num-1){ System.out.println(a+":"+b); a=0; b=0; } } System.out.println(); for(i=0;i<num;i++){ if(result[i]=='W') {a++;} if(result[i]=='L') {b++;} if(result[i]=='\n') {continue;} if(a==21||b==21&&Math.abs(a-b)>2){ System.out.println(a+":"+b); a=0; b=0; } if(i==num-1){ System.out.println(a+":"+b); } } } }
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 485 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信