import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
public class Solution {
public static void main(String[] args) {
/* Enter your code here. Read input from STDIN. Print output to STDOUT.
int a,b,n;
Scanner sc=new Scanner(System.in);
a=sc.nextInt();
Scanner sv=new Scanner(System.in);
b=sv.nextInt();
Scanner st=new Scanner(System.in);
n=st.nextInt();
for(int i=0;i<n;i++)
{
int c=0;
c=2*c*b;
int result=a+c;
System.out.print(result+ " ");
}
}
}
我尝试使用扫描程序类但它不是由eclipse执行的,因为它只显示扫描程序类的sc,sv和st对象是资源泄露而且从不关闭。
答案 0 :(得分:0)
好吧,看起来你有一些配置可以防止程序根据资源泄漏(不是Eclipse用户)进行编译和运行。您的代码在我的机器上编译并运行Intellij,因此您有一些选择。
Scanner
。 (scanner.close()
)您可以从单个扫描仪获得多个值。所以,抛弃其他人。要完成(2)另一种方法,您可以使用try-with-resources块,它将在尝试结束时自动关闭。
try (Scanner sc = new Scanner(System.in)) {
// put your code to get input here
} catch (IOException ioe) { ... }
除了您询问的扫描程序问题之外,您的代码中存在重大错误,导致无法获得任何有意义/准确的输出。考虑...
for (int i = 0; i < n; i++) {
int c = 0;
c = 2 * c * b;
int result = a + c;
System.out.print(result + " ");
}
c
在每个循环上重新生成并分配值0,因此c = 2 * c * b;
将等于0
始终;然后a + c
总是等于a
。
答案 1 :(得分:-1)
不需要创建新的扫描仪对象......
只是这样做:
int a, b, n;
Scanner sc = new Scanner(System.in);
a = sc.nextInt();
b = sc.nextInt();
n = sc.nextInt();
for (int i = 0; i < n; i++) {
int c = 0;
c = 2 * c * b;
final int result = a + c;
System.out.print(result + " ");
}
答案 2 :(得分:-1)
当@Xoce发布他的答案时我输入了这个,所以它与他的完全相同:)
我想补充的另一件事是,如果您使用IntelliJ,请尝试按control-alt-i自动缩进代码。
public static void main(String[] args) {
//Enter your code here. Read input from STDIN. Print output to STDOUT.
int a,b,n;
Scanner sc=new Scanner(System.in);
a=sc.nextInt();
b=sc.nextInt();
n=sc.nextInt();
for(int i=0;i<n;i++)
{
int c=0;
c=2*c*b;
int result=a+c;
System.out.print(result+ " ");
}
}