所以我对编程还很陌生。我正在介绍 java 类,并尝试提交我的项目,但是,我收到错误“int 无法转换为 int[]”。该程序编译良好并且可以工作,但是当它提交到我的网络猫时。它无法引用它。
import java.util.*;
/**
* Guess the 3 digit code and this program will tell you how many
* digits you have right and once you guess the correct code,
* it'll tell you how many guesses it took you.
* Press 0 to exit the program.
*
* @author (philtsoi)
* @version (10/05/2017)
*/
public class CodeCracker {
/**
* calls the play method
*
*/
public static void main(String[] args) {
play();
}
/**
* starts the game
*/
public static void play() {
System.out.println("Guess my 3-digit code?");
Scanner in = new Scanner(System.in);
Random random = new Random();
int correctd = random.nextInt(900) + 100; // random 3-digit code
int[] code = new int[3]; // array that holds 3 integers
int extract = 0; // extract is the one digit of guess
int input = 0; // input is the digits the player types in
int counter = 0; // counter is the number of guesses
int correct = counter; // correct is the digits correct
extract = correctd / 100;
code[0] = extract; // first digit
correctd = correctd - extract * 100;
extract = correctd / 10;
code[1] = extract; // second digit
correctd = correctd - extract * 10;
code[2] = correctd; // third digit
while (true) {
System.out.println("Your guess? ");
input = in .nextInt();
counter++;
if (input == 0) {
System.out.println("Ok.Maybe another time.");
break;
} else {
correct = checkGuess(code, input);
System.out.println(input + " - " + correct + " digits correct");
if (correct == 3) {
System.out.println("You got it in " + counter + " times");
break;
}
}
}
}
/**
* This method checkGuess goes through the code and calculates each
* digit and returns the number of correct ones
*
* @param code[] the array that the number being guesses is stored in
* @param guess the integer of the next guessed digit
* @return number of correct digits
*/
public static int checkGuess(int code[], int guess) {
int count = 0; // count is the number of digits correct
int extract = guess / 100; // extract is the one digit of guess
if (code[0] == extract) {
count++;
guess -= extract * 100;
extract = guess / 10;
}
if (code[1] == extract) {
count++;
guess -= extract * 10;
}
if (code[2] == guess) {
count++;
}
return count;
}
}
我知道一个事实,错误的问题是 checkGuess 方法。任何帮助将不胜感激。
这些是我收到的错误:
最佳答案
这个方法 checkGuess(int code[], int Guess)
需要一个数组,后跟一个 int 作为参数,你只是不能传递 2 个 int 来调用它..
测试代码的类是失败的,您将变量 code 定义为 int[]
关于java - 将 int 转换为 int 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46597985/