请记住,我只是java的初学者。问题是从用户接受十个数字,将它们存储在一个数组中,并找到十个数字的最高,最低和平均值。然后扩展上述程序以按值的递增顺序重新排列所有数字,即对数字进行排序。写下您使用的排序逻辑/算法的解释。
我使用Netbeans按照我的讲师的建议进行java编码。
代码无法编译到需要执行的操作。
以下是代码:
import java.util.Scanner;
public class lowhighavg
{
private static int [] array;
private static int i;
public static void main(String [] args)
{
int numbers[] = new int[10],highest=0, lowest=0;
double avg;
avg = 00;
Scanner sc = new scanner(System.in);
for (int i=0, i<10;i++)
{
System.out.println("Enter a digit");
number[i]= sc.nextInt();
avg = avg+number[i];
}
highest = number[0];
lowest = number[0];
for (int i=0; i< numbers.length; i++);
{
if (numbers [i] > highest)
highest= numbers[i];
}
if (number [i] < lowest)
{
lowest = numbers[i];
}
System.out.println("the highest number:" + highest);
System.out.println("the lowest number:" + lowest);
avg =avg/10;
System.out.println("the average number:" + avg);
}
}
答案 0 :(得分:0)
第一个for循环的语法错误。各个细分市场 应该是分号分开的。
for (int i=0, i<10;i++) // Change the comma here
Java是一种区分大小写的语言。 Scanner
应该是大写的
这个表达的右边。
Scanner sc = new scanner(System.in);
您还声明了一个名为numbers
的int数组,但有几个
代码中您指的是未声明的实例
变量number
。
在第二个for循环结束时你也有一个分号。这就像说“执行任何x次”并且它还具有以下if-statement将仅在该循环结束后执行的结果,导致您的最高数字保持为数组的第一个元素。找到最小数字的另一个if语句也应该在该循环内。
我也不明白为什么你有两个静态变量,因为你显然没有在任何地方使用它们。您将i
声明为静态的事实可能会隐藏上述错误之一。
答案 1 :(得分:0)
这部分显然是错误的:
for (int i=0; i< numbers.length; i++);
{
if (numbers [i] > highest)
highest= numbers[i];
}
if (number [i] < lowest)
{
lowest = numbers[i];
}
它应该是这样的:
for (int i=0; i< numbers.length; i++)
{
if (numbers [i] > highest)
highest= numbers[i];
if (numbers [i] < lowest)
{
lowest = numbers[i];
}
}
您可以使用Arrays.sort(numbers)
对数字进行排序。
答案 2 :(得分:0)
您之前发布的代码示例中存在相当多的错误,但其他人已经指出了这一点。
要查找最高和最低,只需使用Arrays实用程序类并对数组进行排序,并在排序后简单地选择数组的第一个和最后一个值(我修复了语法错误):
import java.util.Arrays;
import java.util.Scanner;
public class lowhighavg
{
private static int [] array;
private static int i;
public static void main(String [] args)
{
int numbers[] = new int[10];
double avg;
avg = 00;
Scanner sc = new Scanner(System.in);
for (int i = 0; i < 10; i++)
{
System.out.println("Enter a digit");
numbers[i]= sc.nextInt();
avg = avg+numbers[i];
}
Arrays.sort(numbers);
System.out.println("the highest number:" + numbers[numbers.length-1]);
System.out.println("the lowest number:" + numbers[0]);
avg =avg/10;
System.out.println("the average number:" + avg);
}
}