当前位置: 首页 > 知识库问答 >
问题:

IDE中的代码正确,但CodeChef中出现错误

锺离声
2023-03-14

我试图解决codechef问题,我能够在IDE中获得输出,也可以使用自定义输入,当我尝试使用这些输入运行时,它会给我错误

问题链接:https://www.codechef.com/problems/HS08TEST

代码:

    /* package codechef; // don't place package name! */

import java.util.*;
import java.lang.*;
import java.io.*;
import java.text.DecimalFormat;
/* Name of the class has to be "Main" only if the class is public. */
class Codechef
{
    public static void main (String[] args) throws java.lang.Exception
    {
        Scanner input = new Scanner(System.in); 
        int numberOne = input.nextInt();
        float numberTwo = input.nextFloat();
        float reduction = 0;
        float result = 0;
        DecimalFormat df2 = new DecimalFormat(".00");
        if(numberOne > 0 && numberOne <= 2000 & numberTwo >= 0 && numberTwo <= 2000){
        if(numberOne % 5 == 0){
            reduction = (float)numberOne+(0.50f);
            if(reduction <= numberTwo){
                result = numberTwo-reduction;

                System.out.println(df2.format(result));
            }
            if(reduction > numberTwo){
                System.out.println(df2.format(numberTwo));
            }
        }
        else{
            System.out.println(df2.format(numberTwo));
        }
        }

    }

}

错误:

异常线程"main"java.util.NoSuchElement异常java.util.Scanner.throwFor(Scanner.java:862)java.util.Scanner.next(Scanner.java:1485)atjava.util.canner.next国际(Scanner.java:2117)java.util.canner.next国际(Scanner.java:2076)odechef.main(Main.java:14)

共有3个答案

乜华翰
2023-03-14

一件简单的事对我来说很有用。。。。我只是用try-and-catch来包围代码。。。。

最终工作代码...

/* package codechef; // don't place package name! */

import java.util.*;
import java.lang.*;
import java.io.*;

/* Name of the class has to be "Main" only if the class is public. */
class Codechef
{
    public static void main (String[] args) throws java.lang.Exception
    {
        try{
        int n, sum = 0;
        Scanner s = new Scanner(System.in);
        n = s.nextInt();
        int a[] = new int[n];
        for(int i = 0; i < n; i++)
        {
            a[i] = s.nextInt();
        }

        int largest=0;
        int element=0;


        for(int i = 0; i < n; i++){
            for(int j=0;j<n;j++){
                element=a[i]%a[j];
                if(largest<element){
                    largest=element;
                }
            }
        }
        System.out.println(largest);
    }
            catch(Exception e){

    }
    }

}
贺兴昌
2023-03-14

您没有占用输入值之间的空间。

只需使用nextLine读取第一行,然后相应地拆分和解析数字

魏威
2023-03-14

“错误”是由于输入不能作为所需类型进行分析造成的(即,Scanner不能将输入解析为intfloat

“一个”解决方案是获取输入并手动解析它。您可以使用nextLine并在上面运行另一个Scanner,或者在公共分隔符上拆分,或者您可以简单地使用Next,例如...

import java.text.DecimalFormat;
import java.util.Scanner;

class Codechef {

    public static void main(String[] args) throws java.lang.Exception {
        Scanner input = new Scanner(System.in);
        String element = input.next(); // Next value up to the next space or new line...
        int numberOne = Integer.parseInt(element);
        element = input.next(); // Next value up to the next space or new line...
        float numberTwo = Float.parseFloat(element);
        float reduction = 0;
        float result = 0;
        DecimalFormat df2 = new DecimalFormat(".00");
        if (numberOne > 0 && numberOne <= 2000 & numberTwo >= 0 && numberTwo <= 2000) {
            if (numberOne % 5 == 0) {
                reduction = (float) numberOne + (0.50f);
                if (reduction <= numberTwo) {
                    result = numberTwo - reduction;

                    System.out.println(df2.format(result));
                }
                if (reduction > numberTwo) {
                    System.out.println(df2.format(numberTwo));
                }
            } else {
                System.out.println(df2.format(numberTwo));
            }
        }

    }

}

这假设输入通常在一行上提供,但此方法允许您处理两个独立的输入。但如果不确切知道输入是什么,就很难提供更精确的解决方案

 类似资料:
  • 我正在尝试运行这段代码,它用于检查设置是否正确: 我所做的所有谷歌搜索都让我一遍又一遍地检查本地库,我很确定我做得对。当我在这个项目的构建路径中找到库时,JRE系统库和Slick2D都会说本地库的位置:…/windows/x64。我只尝试过…/windows,我尝试过JRE没有本地位置。我遵循了两个不同的教程来学习如何做到这一点,并且在尝试运行这段简单代码时不断出现错误。有什么帮助吗?

  • 虽然相同的代码在NetBeans IDE中工作,但它在eclipse上给出了这个错误!在运行代码并输入后,我得到了这个错误 线程“main”java.lang.noClassDeffounder异常错误:net/sourceforge/jfuzzylogic/fis在pkt.resturant.(resturant.java:17)在pkt.program.main(program.java:15

  • 在HTML文件中,当我将光标定位在元素的开头时(例如 ),VS CODE将正确选择结束标记( )。 另一方面,如果我创建了一个包含HTML的PHP文件,则不会发生这种情况。如果我将自己定位在标记的开头(例如 ),那么VS CODE将为我选择任何代码段的所有div标记,这使得我无法理解标记( )的关闭位置。 这也发生在其他元素或属性中,如:class、section、id、p等,就好像它找到了所有与

  • 我在后端使用Axios时遇到了问题。这可能是一个非常简单的修复,因为我是新手。 邮递员:对于有效和无效的凭据都收到正确的响应。 axios:对于有效的crendentials会收到正确的响应,但是当输入无效的凭据时,axios方法的catch块会运行。

  • 以下是我的原始html代码: 而我只是想把三个div.box移动到div.container,但是当我直接粘贴的时候,就会是这样的,只是拳头线有正确的缩进: 我按照指示在设置中禁用aotoInent,但没有工作,那么如何处理它?

  • 我的石头、布、剪刀游戏出错了: 代码: