Java 查找数组中最大元素的索引
我想写一段代码,返回给定数组中最大元素的索引。然而,当我尝试编译时,我得到了一条我似乎无法理解的消息。虽然我已经完成了错误消息告诉我的事情,但它一直在告诉我要修复它们。请帮助这个新手程序员Java 查找数组中最大元素的索引,java,arrays,indexing,Java,Arrays,Indexing,我想写一段代码,返回给定数组中最大元素的索引。然而,当我尝试编译时,我得到了一条我似乎无法理解的消息。虽然我已经完成了错误消息告诉我的事情,但它一直在告诉我要修复它们。请帮助这个新手程序员 公共类{ int[]数组=新的int[10]; 数组[0]=100; 数组[1]=200; 数组[2]=300; 数组[3]=400; 数组[4]=500; 数组[5]=600; 数组[6]=700; 数组[7]=800; 阵列[8]=900; 数组[9]=1000; 整数指数; 公共静态void main
公共类{
int[]数组=新的int[10];
数组[0]=100;
数组[1]=200;
数组[2]=300;
数组[3]=400;
数组[4]=500;
数组[5]=600;
数组[6]=700;
数组[7]=800;
阵列[8]=900;
数组[9]=1000;
整数指数;
公共静态void main(字符串参数){
对于(int i=0;i这种类型的初始化不能在方法之外完成:
array[0] = 100;
array[1] = 200;
array[2] = 300;
array[3] = 400;
array[4] = 500;
array[5] = 600;
array[6] = 700;
array[7] = 800;
array[8] = 900;
array[9] = 1000;
或者将作业移动到您的主任务中,或者更改为
int[] array = new int[10];
到
顺便说一句,除了这个编译错误,你的代码没有完成它应该做的事情。它会抛出ArrayIndexOutOfBoundsException(因为当我达到9时,array[i+1]
将超出范围)。为了找到最大元素的索引,必须维护一个保持当前最大值的变量,并将其与数组中的所有元素进行比较
public static void main(String args) {
int max = array[0];
index = 0;
for (int i=1; i<10; i++) {
if (array[i] > max) {
index = i;
max = array[i];
}
}
System.out.println(index);
}
publicstaticvoidmain(字符串参数){
int max=数组[0];
指数=0;
对于(int i=1;i max){
指数=i;
max=数组[i];
}
}
系统输出打印项次(索引);
}
这种类型的初始化不能在方法之外完成:
array[0] = 100;
array[1] = 200;
array[2] = 300;
array[3] = 400;
array[4] = 500;
array[5] = 600;
array[6] = 700;
array[7] = 800;
array[8] = 900;
array[9] = 1000;
或者将作业移动到您的主任务中,或者更改为
int[] array = new int[10];
到
顺便说一句,除了这个编译错误,你的代码没有完成它应该做的事情。它会抛出ArrayIndexOutOfBoundsException(因为当我达到9时,array[i+1]
将超出范围)。为了找到最大元素的索引,必须维护一个保持当前最大值的变量,并将其与数组中的所有元素进行比较
public static void main(String args) {
int max = array[0];
index = 0;
for (int i=1; i<10; i++) {
if (array[i] > max) {
index = i;
max = array[i];
}
}
System.out.println(index);
}
publicstaticvoidmain(字符串参数){
int max=数组[0];
指数=0;
对于(int i=1;i max){
指数=i;
max=数组[i];
}
}
系统输出打印项次(索引);
}
几乎没有更正:
公共类{
//从这里移到main()内部
int[]数组=新的int[10];
数组[0]=100;
数组[1]=200;
数组[2]=300;
数组[3]=400;
数组[4]=500;
数组[5]=600;
数组[6]=700;
数组[7]=800;
阵列[8]=900;
数组[9]=1000;
int index;//必需的默认值
//移入main()直到这里
公共静态void main(字符串参数){//缺少[]符号
对于(int i=0;i<10;i++){
if(数组[i]<数组[i+1]){
指数=i+1;
}否则{
指数=i;
}
i++;
}
系统输出打印项次(索引);
}
}
几乎没有更正:
公共类{
//从这里移到main()内部
int[]数组=新的int[10];
数组[0]=100;
数组[1]=200;
数组[2]=300;
数组[3]=400;
数组[4]=500;
数组[5]=600;
数组[6]=700;
数组[7]=800;
阵列[8]=900;
数组[9]=1000;
int index;//必需的默认值
//移入main()直到这里
公共静态void main(字符串参数){//缺少[]符号
对于(int i=0;i<10;i++){
if(数组[i]<数组[i+1]){
指数=i+1;
}否则{
指数=i;
}
i++;
}
系统输出打印项次(索引);
}
}
公共静态void main(字符串[]args){
int[]数组={100200300400500600700800900};
System.out.println(最高值(数组));
}
公共静态int最高值(int[]arr){
int指数=0;
int highestValue=Integer.MIN_值;
对于(int i=0;i最高值){
最高值=温度;
指数=i;
}
}
收益指数;
}
公共静态void main(字符串[]args){
int[]数组={100200300400500600700800900};
System.out.println(最高值(数组));
}
公共静态int最高值(int[]arr){
int指数=0;
int highestValue=Integer.MIN_值;
对于(int i=0;i最高值){
最高值=温度;
指数=i;
}
}
收益指数;
}
初始化数组时,我们不是使用{}
而不是()
?它有效吗(我不确定这就是我问的原因)或者它是一个打字错误?初始化数组时,我们不是使用{}
而不是()
?它有效吗(我不确定这就是我问的原因)旁注:我衷心建议您学习一些关于java类结构的基本教程,以及java中的“如何命名”(您的类名应始终以大写字母开头).旁注:我衷心建议您学习一些有关java类结构的基本教程,以及java中的“如何命名”(您的类名应始终以大写字母开头)。
public static void main(String[] args) {
int[] array = {100, 200, 300, 400, 500, 600, 700, 800, 900};
System.out.println(highestValue(array));
}
public static int highestValue(int[] arr) {
int index = 0;
int highestValue = Integer.MIN_VALUE;
for(int i = 0; i < arr.length; i++) {
int temp = arr[i];
if(temp > highestValue) {
highestValue = temp;
index = i;
}
}
return index;
}