t(没有行),接下来的t行包含空格分隔的数字。
输出应返回每行中数字的总和。
已在JCreater中编码,没有编译错误!但是,只有在取消注释注释行后才能获得所需的输出,否则程序突然终止并显示答案为零。它只与System.out.println
语句一起使用,任何其他伪造的语法都没有得到结果!
import java.io.BufferedReader;
import java.io.InputStreamReader;
class TestClass {
public static void main(String args[] ) throws IOException
{
int t=0;
BufferedReader StdIn = new BufferedReader(new InputStreamReader(System.in));
try
{
String line = StdIn.readLine();
t = Integer.parseInt(line);
}
catch (IOException e)
{
System.err.println("Error: " + e);
}
int m=0;
int result[]= new int [t];
for(int q=0;q<t;q++)
{
// System.out.println("LOOP: "+q);
m=fun_num();
result[q]=m;
}
for(int q=0;q<t;q++)
System.out.println(result[q]);
}
public static int fun_num()
{
int i=0,o=0,j=0,m=1,s=0,sum=0;
String inp=null;
BufferedReader StdIn = new BufferedReader(new InputStreamReader(System.in));
try
{
String line = StdIn.readLine();
inp=line;
}
catch (IOException e)
{
System.err.println("Error: " + e);
}
String inp2=" ";
j=inp.length();
for(i=0;i<j;i++)
{
if (inp.charAt(i)== inp2.charAt(0))
m++;
}
int num_in_order[]= new int [m];
int num=0;
for(i=0;i<j;i++)
{
if (inp.charAt(i)== inp2.charAt(0))
{
num_in_order[s]=num;
s++;
num=0;
}
else
{
o=((int)(inp.charAt(i))-48);
num=(num*10)+o;
}
}
num_in_order[s]=num;
for(i=0;i<m;i++)
sum=sum+num_in_order[i];
return (sum);
}
}
答案 0 :(得分:0)
我认为你创建的第一个读者(StdIn)是在fun_num()
的读者有机会看到之前缓冲所有输入。尝试将StdIn作为参数传递给“fun_num”函数,而不是每次都创建它。