我正在创建一个程序,该程序在0到9之间生成100个随机整数,并显示每个数字的计数。我正在使用十个整数的数组, counts 存储0s,1s,...,9s。)
)编译程序时,我会收到错误:
RandomNumbers.java:9:错误:类RandomNumbers中的方法GenerateNumbers不能应用于给定类型;
generateNumbers();必需:int []
找到:generateNumbers();
原因:实际和正式的参数列表在长度上有所不同
我在主要方法中称为generateNumbers()和displayCounts()的代码行的错误。
public class RandomNumbers {
public static void main(String[] args) {
//declares array for random numbers
int[] numbers = new int [99];
//calls the generateNumbers method
generateNumbers();
//calls the displayCounts method
displayCounts();
}
//*****************************************************************
private static int generateNumbers(int[] numbers){
for(int i = 0; i < 100; i++){
int randomNumber;
randomNumber = (int)(Math.random() *10);
numbers[i] = randomNumber;
return randomNumber;
}
}
//*****************************************************************
private static void displayCounts(int[] numbers){
int[] frequency = new int[10];
for(int i = 0, size = numbers.length; i < size; i++ ){
System.out.println((i) + " counts = " + frequency[i]);
}
}//end of displayCounts
}//end of class
generateNumbers()
期望一个参数,而您不会传递一个!
generateNumbers()在设置第一个随机数之后也返回 - 似乎对它正在尝试做的事情有些困惑。
调用generateNumbers(numbers);
,您的generateNumbers();
期望int[]
作为argument
ANS,您无需传递,因此错误
generateNumbers(int[] numbers)
函数定义具有期望整数数组的参数(int[] numbers)
。但是,总的来说,generateNumbers();
没有任何参数。
要解析它,只需在主调用generateNumbers()
函数时,将数字添加到参数中。
我认为您想要这样的东西。格式已关闭,但应该提供您想要的基本信息。
import java.util.Scanner;
public class BookstoreCredit
{
public static void computeDiscount(String name, double gpa)
{
double credits;
credits = gpa * 10;
System.out.println(name + " your GPA is " +
gpa + " so your credit is $" + credits);
}
public static void main (String args[])
{
String studentName;
double gradeAverage;
Scanner inputDevice = new Scanner(System.in);
System.out.println("Enter Student name: ");
studentName = inputDevice.nextLine();
System.out.println("Enter student GPA: ");
gradeAverage = inputDevice.nextDouble();
computeDiscount(studentName, gradeAverage);
}
}
在调用函数时将数组作为参数传递,例如
(generateNumbers(parameter),displayCounts(parameter))
如果您使用daggerAndroid依赖注入遇到此错误,请首先尝试清洁和重建项目。如果那不起作用,则可能删除项目.gradle Cache。有时,dagger无法在更改上生成所需的工厂类。
public class RandomNumbers {
public static void main(String[] args) {
//declares array for random numbers
int[] numbers = new int [100];
//calls the generateNumbers method
generateNumbers(numbers); //passing the empty array
//calls the displayCounts method
displayCounts(numbers); //passing the array filled with random numbers
}
//*****************************************************************
private static void generateNumbers(int[] numbers){
for(int i = 0; i < 100; i++){
int randomNumber;
randomNumber = (int)(Math.random() *10);
numbers[i] = randomNumber;
} // here the function doesn't need to return.Since array is non primitive data type the changes done in the function automatically gets save in original array.
}
//*****************************************************************
private static void displayCounts(int[] numbers){
int count;
for(int i = 0, size = 10; i < size; i++ ){
count=0;
for(int j = 0; j < numbers.length ; j++ ){
if(i == numbers[j])
count++; //counts each occurence of digits ranging from 0 to 9
}
System.out.println((i) + " counts = " + count);
}
}//end of displayCounts
}//end of class