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

正数的返回和

岳英锐
2023-03-14

我必须编写一个程序,其中方法返回读取的正数之和,并将从用户那里读取输入,直到输入零。

到目前为止,我没有计算正数的总和,我需要一些帮助,请。

以下是我目前掌握的情况:

readandsumpositives()(请注意,您得到了扫描程序,不要使用system.in)-从用户读取,直到给定0,并返回读取的正数的和。

示例:

♦用户输入:0=>返回0

♦用户输入1 2 3 0=>返回6(1+2+3)

♦用户输入1-2 3 0=>返回6(1+3,跳过-2,因为它是负数)

public static int readAndSumPositives(Scanner in,PrintStream out)
{
    int input;
    int count;
    int sum;
    int total;

    sum = 0;
    count =0;
    total = sum+count;

        out.println("Please enter a number");
        input=in.nextInt();
     while(input != 0 && input != -2 && input != -3 && input != -4) {
        sum += input;
        count++;
        out.println("Enter your next positive number");
        input=in.nextInt();
    } 

    if (input == 0) {
        return sum;
    } else return input;
}

下面是我在GitBash中运行此方法时正在执行的代码

private static int readAndSumPositivesFrom(String input) {

    ByteArrayOutputStream out_bs = new ByteArrayOutputStream();
    PrintStream out=new PrintStream(out_bs);

    Scanner in_s = new Scanner(new ByteArrayInputStream(input.getBytes()));
    int ans = Assignment5.readAndSumPositives(in_s,out);
    in_s.close();
    return ans;
}

@Grade(points = 20)
@Test
public void testReadAndSumPositives() {     
    Assert.assertEquals(30, readAndSumPositivesFrom("10 20 0 "));
    Assert.assertEquals(20, readAndSumPositivesFrom("10 -20 10 0 "));
    Assert.assertEquals(10, readAndSumPositivesFrom("1 2 -2 3 -3 4 -4 0 "));
}

任何帮助都是感激的,并将获得积分!

提前道谢。

共有1个答案

拓拔霄
2023-03-14

您返回的值不正确。当第一个输入是0时,应返回input;当第一个输入不是sum时,应返回sum。你的做法恰恰相反。此外,如果用户首先输入的是正数,则在循环外部获取第一个输入,然后在循环中检查它,并在循环中获取下一个输入,这势必会导致逻辑错误(或者更确切地说是语法错误,因为input没有在循环外部初始化)。执行循环内的所有操作并检查返回的内容。

while(true){  //infinite loop
    out.println("Enter positive number to add, 0 to stop.");
    input = in.nextInt();
    if(input == 0)
        break;
    if(input > 0)
        sum+= input;
}
return sum;
 类似资料:
  • 我们有一个关于MySQL中返回错误整数值的函数的问题。我们已经检查了“booked_passeters”是否包含正确的值0,并且当移除该变量时,它可以正常工作,也就是说只返回整数40。但是,当我们试图从它中减去“booked_passeters”(最终仍应返回40)时,它就不起作用了。 包括下面的代码。 提前道谢!:-)

  • 问题内容: 我正在使用Postgresql 8.3,并具有以下简单功能,该功能会将a返回 给客户端 现在,我可以使用以下SQL命令来调用此函数并操纵返回的游标,但是游标名称是由PostgreSQL自动生成的 此外,如38.7.3.5中所述,显式地将游标名称声明为函数的输入参数 。返回游标。我可以声明自己的游标名称并使用此游标名称来操纵返回的游标,而不是为我自动生成的Postgresql吗?如果不是

  • 问题内容: def size_of_dir(dirname): print(“Size of directory: “) print(os.path.getsize(dirname)) 是有问题的代码。dirname是一个目录,其中包含 130个 文件,每个文件约 1kb 。当我调用此函数时,它返回 4624 ,这 不是 目录的大小…为什么? 问题答案: 此值(4624B)代表的大小 文件 是 描

  • 我使用改型来连接数据库,但GSON似乎没有解析数据。正在返回JSON,但没有创建响应体,因此我无法与数据交互。有什么想法吗? 我的URL添加 okhttp日志

  • 意识到递归是我的弱点之一后,我找到了一个网站,迫使你递归地解决简单问题(https://codestepbystep.com/problem/view/cpp/recursion/digitsSorted?problemsetid=15) 我坚持的一个(digitalsSorted,数字5)如下:调用一个传递数字作为参数的函数。如果该数字中的数字按递增顺序排序,则函数返回True,否则返回Fals