Java 输出自动显示,无需执行任何操作
所以,我试图创建一个程序来计算考试的分数。我们要做的是给出一个由X和0组成的字符串模式,即000XXX000XXX,其中“X”的值为0,每个0的值为1,并且对于每个连续的“0”,值增加1。如果假设有2个或更多连续的0,然后是一个“X”,则“0”的值将重置为1。如果程序对您来说很常见,则,是的,这是一个来自OJ的问题,它是由我大学的一名大四学生交给我解决的。现在的问题是,我已经了解了代码的工作原理并解决了问题。但代码中似乎存在一个问题Java 输出自动显示,无需执行任何操作,java,Java,所以,我试图创建一个程序来计算考试的分数。我们要做的是给出一个由X和0组成的字符串模式,即000XXX000XXX,其中“X”的值为0,每个0的值为1,并且对于每个连续的“0”,值增加1。如果假设有2个或更多连续的0,然后是一个“X”,则“0”的值将重置为1。如果程序对您来说很常见,则,是的,这是一个来自OJ的问题,它是由我大学的一名大四学生交给我解决的。现在的问题是,我已经了解了代码的工作原理并解决了问题。但代码中似乎存在一个问题 package javaapplication4; impo
package javaapplication4;
import java.util.Scanner;
public class JavaApplication4 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int T, score = 0, f = 0, g = 0;
String str;
int len;
T = sc.nextInt();
for (int i = 1; i <= T; i++) {
str = sc.nextLine();
len = str.length();
for (int j = 0; j < len; j++) {
if (str.charAt(j) == '0') {
f++;
score = score + f;
}
else if(str.charAt(j) == 'X')
{
f = 0;
score = score + g;
}
}
System.out.println(score);
}
}
}
sc.nextLine()会触发sc.nextLine(),因此您会得到一个空字符串的输出,这就是为什么它为零,通过使用sc.nextLine()输入您的测试用例号,您可以防止这种情况:
int score = 0;
System.out.println("Enter test case:");
int testCase= Integer.parseInt(sc.nextLine());
for (int i = 1; i <= testCase; ++i)
{
System.out.println("Enter pattern:");
String str = sc.nextLine();
for (int j = 0; j < str.length(); j++)
{
if (str.charAt(j) == '0')
{
score += 1;
}
else if (str.charAt(j) == 'X')
{
score += 0;
}
}
System.out.println(score);
score = 0; // reset score to zero for the next test case
}
int评分=0;
System.out.println(“输入测试用例:”);
int testCase=Integer.parseInt(sc.nextLine());
对于(int i=1;i您在T=sc.nextLine()之后错过了sc.nextLine();
至少对我来说,你的解释令人困惑。也许你应该提供一个增强的示例。顺便说一句:注意Java命名约定。变量应该以小写开头character@Jens谢谢,我知道这是什么问题,但我不知道到底要搜索什么,所以我不得不去找她答复:)
int score = 0;
System.out.println("Enter test case:");
int testCase= Integer.parseInt(sc.nextLine());
for (int i = 1; i <= testCase; ++i)
{
System.out.println("Enter pattern:");
String str = sc.nextLine();
for (int j = 0; j < str.length(); j++)
{
if (str.charAt(j) == '0')
{
score += 1;
}
else if (str.charAt(j) == 'X')
{
score += 0;
}
}
System.out.println(score);
score = 0; // reset score to zero for the next test case
}