用Java找出一个整数数组中最大的值,并返回最大值的数组下标,尤其是有两个或是三个最大值时

用Java找出一个整数数组中最大的值,并返回最大值的数组下标,尤其是有两个或是三个最大值时

private int [] x={11,2,6,9,12,7,12,1,3,12,8};
private int max=x[0];
for(int i=1;i<x.length;i++){
if(max<x[i]){
max=x[i]; //获得最大值

}
for(int j=0;j<x.length;j++){
if(x[j]==max){ //遍历对比

System.out.println(j); //输出最大值下标

}
}
}
不好意思,之前写快了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-30
用ArrayList做的,可以满足要求

import java.util.*;

public class wenwen {
public static void main(String[] args)
{
ArrayList al=new ArrayList();
int[] a = new int[]{11,2,9,15,13,18,14,7,12,18,9,3,1};
int max=0;
for(int i=1;i<a.length;i++)
if(a[max]<=a[i]){
max=i;
if(!al.isEmpty()&&a[(Integer)al.get(0)]==a[max])
al.add(max);
else
{
al.clear();
al.add(max);
}
}
System.out.print("最大数是:"+a[(Integer)al.get(0)]+" 下标是:");
for(int i=0;i<al.size();i++)
System.out.print(al.get(i)+" ");
}
}
第2个回答  2013-03-30
import java.io.*;
class InputData{
static public String s;
static public void inputdata(){
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
try{
s=br.readLine();
}catch(IOException e){}
}
static public int getInt()
{
inputdata();
return Integer.parseInt(s);
}
}
public class find_max {
/**
* @param args
*/
private int size1;
private int []array;
public static void main(String[] args) {
// TODO Auto-generated method stub
find_max obj=new find_max();

System.out.println("please input the size of the array : ");
obj.size1=InputData.getInt();
obj.array=new int [obj.size1];
for(int i=0;i<obj.size1;++i)
{
obj.array[i]=(int)(Math.random()*1000);
//obj.array[i]=InputData.getInt();
System.out.println(obj.array[i]);
}
for(int i=0;i<obj.size1-1;i++)
for(int j=i+i;j<obj.size1;j++)
{
if(obj.array[i]>obj.array[j])
{
int temp=obj.array[i];
obj.array[i]=obj.array[j];
obj.array[j]=temp;
}
}
for(int i=0;i<obj.size1;++i)
{
System.out.println(obj.array[i]);
}
}
}
第3个回答  2013-03-29
package com.sento.dao;
public class BigNumber {
public int[] getBigNumber(int[] arrary){
int[] index=new int[arrary.length];
int[] tem=arrary;
int temp=0;
int n=0;//记录最大值的下标
int flag=0;
//升序排列,冒泡排序
for(int i=0;i<arrary.length;i++){
for(int j=arrary.length-1;j>i;j--){
if(arrary[j]<arrary[j-1]){
temp=arrary[j];
arrary[j]=arrary[j-1];
arrary[j-1]=temp;
}
}
}
flag=tem[tem.length-1];
for(int count=0;count<tem.length;count++){
if(tem[count]==flag){
index[n]=count;
n++;
}
}
return index;
}
}