我必须编写一个程序,其中方法返回读取的正数之和,并将从用户那里读取输入,直到输入零。
到目前为止,我没有计算正数的总和,我需要一些帮助,请。
以下是我目前掌握的情况:
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 "));
}
任何帮助都是感激的,并将获得积分!
提前道谢。
您返回的值不正确。当第一个输入是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