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

第二次读数字

张晨朗
2023-03-14

如果用户通过cmd输入以下数字:< code>2 -13 4 12 -1 113 19,则输出应为:

(2,-13) has signs (+,-) and is in Q4
(4,12) has signs (+,+) and is in Q1
(-1,113) has signs (-,+) and is in Q2

但我得到的是这个:

(2,-13) has signs (+,-) and is in Q4
(-13,4) has signs (-.+) and is in Q2
(4,12) has signs (+,+) and is in Q1
(12,-1) has signs (+,-) and is in Q4
(-1,113) has signs (-.+) and is in Q2
(113,19) has signs (+,+) and is in Q1

即该对中的第二个数字再次重复自己作为下一对中的第一个数字。代码有什么问题?

public static void main(String [] args) 
    {

         int[] numbers = new int[args.length];
           try
            {
                for (int i = 1; i < args.length; i++) 
                {

                    numbers[i-1] = Integer.parseInt(args[i-1]);
                    numbers[i] = Integer.parseInt(args[i]);
                    System.out.println("("+numbers[i-1]+","+numbers[i]+")" + " has signs " + checkSigns(numbers[i-1], numbers[i]) + " and is in " + fromInts(numbers[i-1], numbers[i]));
                }
            }
            catch (NumberFormatException e)
            {
                System.out.println(e.getMessage());
            }
    }

共有2个答案

乐正意智
2023-03-14

你的for循环应该递增2。因为在你的例子中,数字[i-1]=2,其中i=1数字[i]=-13,其中i=1数字[i-1]=-13,这里i=2数字[i]=4,其中i=2,以此类推

谈禄
2023-03-14

变量i增加2,因为您在循环的每次迭代中使用数组中的两个条目:

public static void main(String [] args) 
{

     int[] numbers = new int[args.length];
       try
        {
            for (int i = 1; i < args.length; i += 2) 
            {

                numbers[i-1] = Integer.parseInt(args[i-1]);
                numbers[i] = Integer.parseInt(args[i]);
                System.out.println("("+numbers[i-1]+","+numbers[i]+")" + "    has signs " + checkSigns(numbers[i-1], numbers[i]) + " and is in " + fromInts(numbers[i-1], numbers[i]));
            }
        }
        catch (NumberFormatException e)
        {
            System.out.println(e.getMessage());
        }
}
 类似资料:
  • 问题内容: 我有一些这样定义的路线: 在这些路线中,我有一个禁区和一个授予访问权页面以授予对该禁区的访问权限。当解析提供者被拒绝时,我将重定向到该路由。 这是执行此操作的代码: 这是我的提供者的代码: (只返回一个布尔值) 我第一次与提供者一起去路线被执行。该路由被拒绝,因为未授予访问权限,我们被重定向到该路由。 在此页面中,用户可以登录并有权访问限制区域。一旦用户登录,我们会将其重定向到该路由,

  • 问题内容: 在Scipy文件中写道: 函数零将创建一个由零组成的数组,函数一个将创建由零组成的数组,函数空将创建一个数组,其初始内容是随机的,并取决于内存的状态。默认情况下,创建的数组的dtype为float64。 所以我运行了这段代码: 返回: 因此,它返回一个随机数,并且一切都很好。 但是,当我第二次运行该代码(在该shell中)时,它返回一个零数组! 问题是,为什么第二次返回零数组(而不是随

  • 我正在开发一个android应用程序,它使用AsyncTasks从应用程序API获取JSON数据。当我启动我的应用程序时,一切都很顺利,应用程序从API中获取了正确的信息。 编辑:这是我获取数据的方式。 BufferedReader读取器=空;尝试{reader=new BufferedReader(new InputStreamReader(url.OpenStream(),“UTF-8”));

  • 问题内容: 是否有比从Python中的文件一次读取第二行更好的方法呢? 我在2.5.4中。较新版本有何不同? 编辑:删除的答案指出:在py3k中,您需要执行next(f)而不是f.next()。更不用说打印更改 问题答案: import itertools las,需要Python 2.6或更高版本;2.5仅具有,如果有奇数行,它将截断最后一行。当然,提供与生成器相同的功能非常容易。 这是一个更一

  • 问题内容: 在上面的代码中,当在外部函数中调用它时,它会提供正确的结果,但是当尝试在函数中调用同一函数时,它会产生一个空列表,该列表的值为0。上面的代码有什么问题? 问题答案: 文件对象只能读取一次。一旦已经,您可以不再从文件中读取任何东西,因为它已经达到了。 要读取文件的内容,请调用f.read(size),它将读取一定数量的数据并将其作为字符串返回。size是一个可选的数字参数。当size省略

  • 本章导读 笔试和面试中,除了字符串,另一类出现频率极高的问题便是与数组相关的问题。在阅读完第1章和本第二章后,读者会慢慢了解到解决面试编程题的有几种常用思路。首先一般考虑“万能的”暴力穷举(递归、回溯),如求n个数的全排列或八皇后(N皇后问题)。但因为穷举时间复杂度通常过高,所以需要考虑更好的方法,如分治法(通过分而治之,然后归并),以及空间换时间(如活用哈希表)。 此外,选择合适的数据结构可以显