此代码不起作用, 它说calculateArray中的lessthaAverage(int)不能应用于(),我是初学者所以我还是不理解这个编码,这就是问题,写一个面向对象的程序随机生成一个1000个整数的数组,介于1到1000之间。 计算超过500的数字的出现次数并找到数字的平均值。 计算小于平均值的数字,最后按降序对数字进行排序。 显示所有输出。请帮帮我!!!谢谢...
import java.util.*;
import java.io.*;
//import java.util.random;
public class CalculateArray
{
//declare attributes
private int arr[] = new int[1000];
int i;
//generates an array of 1000 integers between 1 to 1000
public void genArr()
{
Random ran = new Random();
for(i = 0; i < arr.length; i++)
{
arr[i] = ran.nextInt(1000) + 1;
}
}
//Calculate the occurences of number more than 500
public int occNumb()
{
int count;
for(i = 0; i < arr.length; i++)
{
if(arr[i] > 500)
{
count++;
}
}
return count;
}
//find the average of the numbers
public int average()
{
int sum, aver;
for(i = 0; i < arr.length; i++)
{
sum += arr[i];
}
aver = sum/1000;
return aver;
}
//Count the number which is less than the average
public int lessthanAverage(int aver)
{
int cnt;
cnt = 0;
for(i = 0; i < arr.length; i++)
{
if(arr[i] < aver)
{
cnt++;
}
}
return cnt;
}
//finally sort the numbers in descending order.
public void sort(int[] num)
{
System.out.println("Numbers in Descending Order:" );
for (int i=0; i <= num.length; i++)
for (int x=1; x <= num.length; x++)
if (num[x] > num[x+1])
{
int temp = num[x];
num[x] = num[x+1];
num[x+1] = temp;
}
}
//Display all your output
public void display()
{
int count, aver;
System.out.println(arr[i] + " ");
System.out.println("Found " + count + " values greater than 500");
System.out.println("The average of the numbers is " + aver);
System.out.println("Found " + count + " values that less than average number ");
}
public static void main(String[] args)
{
CalculateArray show = new CalculateArray();
show.genArr();
int c= show.occNumb();
show.average();
int d=show.lessthanAverage();
show.sort(arr);
show.display();
}
}
答案 0 :(得分:0)
你的方法lessthanAverage正在期待一个int参数。您应该将平均方法调用的结果存储到int变量中,并将其传递给对lessthanAverage的调用。
int avg = show.average();
int d=show.lessthanAverage(avg);
答案 1 :(得分:0)
您的lessthaAverage()
方法希望将平均值作为参数传入,但是在调用它时不会传入它。
答案 2 :(得分:0)
您的方法lessthanAverage
似乎需要int
作为参数,但您没有将其传递到main
public int lessthanAverage(int aver)
主要aver
未被传递:
int d=show.lessthanAverage(); // where is aver?
但是如果您想知道方法中的平均值,可以在average
内调用lessthanAverage
方法:
if(arr[i] < this.average())
并且根本不传递任何参数:
public int lessthanAverage()