麻烦帮忙 麻烦给一个求出一列数组中的最大和最大数的程序。。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是自己写算法还是使用Java API。自己写算法从google上查,使用Java API的话,可以使用java.util.Arrays,查看Java API文档有这个类的详细使用说明 用Array.sort(int[] a)排下序,取最后面得元素就是最大值了 没看懂什么叫最大最大数 按最大最小给你求的import java.util.*;public class Test { public static void main(String[] args) { int[] a ={1,4,7,2,5,8,3,6,9,10}; //假设数组里有十个数 Arrays.sort(a); //将数组从大到小排序 System.out.println("最小数为"+a[0]); System.out.println("最大数为"+a[a.length-1]); }} import java.util.Scanner;public class Mmax{ public static void main(String []args){ int []a; int count; Scanner reader=new Scanner(System.in); System.out.println("要输入几个数字:"); count=reader.nextInt(); a=new int[count]; for(int i=0;i<count;i++){ a[i]=reader.nextInt(); } System.out.println("输出最大数:"); for(int i=0;i<a.length;i++){ if(a[i]>a[i+1]){ int temp; temp=a[i]; a[i+1]=temp; } } System.out.println("最大值为:"+temp); } 怎么这个老是说没有定义temp呢。。要如何修改呢?? arrays.sort() Collections.sort() 楼主 你先看看我这段代码 我是根据你的代码进行改写的 你的代码逻辑有问题 import java.util.Scanner;public class Mmax { public static void main(String[] args) { int[] a; int count; Scanner reader = new Scanner(System.in); System.out.println("要输入几个数字:"); count = reader.nextInt(); a = new int[count]; for (int i = 0; i < count; i++) { System.out.println("请输入第"+(i+1)+"个数!"); a[i] = reader.nextInt(); } System.out.println("输出最大数:"); int temp = 0; for (int i = 0; i < a.length-1; i++) { if (a[i] > a[i + 1]) { temp = a[i]; a[i + 1] = temp; }else{ temp = a[i+1]; } } System.out.println("最大值为:" + temp); }} 因为你这temp是局部变量,只在for循环里存在 import java.util.Scanner;public class MaxElement { public static void main(String[] args) { Scanner reader = new Scanner(System.in); System.out.print("请输入数组的个数:"); int count = reader.nextInt(); int[] array = new int[count]; for (int i = 0; i < array.length; i++) { array[i] = reader.nextInt(); } System.out.println("你输入的数组是:"); for (int j = 0; j < array.length; j++) { System.out.print(array[j] + " "); } int temp = 0; for (int i = 0; i < array.length - 1; i++) { if (array[i] > array[i + 1]) { temp = array[i]; array[i] = array[i + 1]; array[i + 1] = temp; } } System.out.println("最大的数是:" + temp); }} int max=array[0];for(int i=1; i<array.length;i++){ if(array[i]>max) max=array[i];}或者求最大值的下标:int maxIndex=0;for(int i=1;i<array.length;i++){ if(array[i]>array[maxIndex]) maxIndex=i;}Systme.out.println(array[maxIndex]);这是标准的求最大值的算法,怎么你们都搞那么复杂呢?还把原数组给糟蹋的乱七八糟? int max=array[0];for(int i=1; i <array.length;i++){ if(array[i]>max) max=array[i];} 如bigbug所说,这个效率最高,而且不改动原始数据,是比较好的方法了。 编译报错,高手看看 由“如何导入不带包的类”想到的 怎么在本窗体添加一个按钮,通过单击按钮连接到from窗体! 合并png图片,大家帮帮忙 问个弱弱的基础问题 异常问题请教 求教,java高手请进 java里的时间函数在哪里,怎么用?? 关于日期排序的问题 初学者学完java基础,希望给推荐一些小项目 谁有java P2P技术讲得比较好的书籍,推介一下! 引用传递问题
自己写算法从google上查,
使用Java API的话,可以使用java.util.Arrays,查看Java API文档有这个类的详细使用说明
import java.util.*;public class Test
{
public static void main(String[] args)
{
int[] a ={1,4,7,2,5,8,3,6,9,10}; //假设数组里有十个数
Arrays.sort(a); //将数组从大到小排序
System.out.println("最小数为"+a[0]);
System.out.println("最大数为"+a[a.length-1]);
}
}
public class Mmax{
public static void main(String []args){
int []a;
int count;
Scanner reader=new Scanner(System.in);
System.out.println("要输入几个数字:");
count=reader.nextInt();
a=new int[count];
for(int i=0;i<count;i++){
a[i]=reader.nextInt();
}
System.out.println("输出最大数:");
for(int i=0;i<a.length;i++){
if(a[i]>a[i+1]){
int temp;
temp=a[i];
a[i+1]=temp;
}
}
System.out.println("最大值为:"+temp);
}
怎么这个老是说没有定义temp呢。。要如何修改呢?
?
Collections.sort()
public static void main(String[] args) {
int[] a;
int count;
Scanner reader = new Scanner(System.in);
System.out.println("要输入几个数字:");
count = reader.nextInt();
a = new int[count];
for (int i = 0; i < count; i++) {
System.out.println("请输入第"+(i+1)+"个数!");
a[i] = reader.nextInt();
}
System.out.println("输出最大数:");
int temp = 0;
for (int i = 0; i < a.length-1; i++) { if (a[i] > a[i + 1]) {
temp = a[i];
a[i + 1] = temp;
}else{
temp = a[i+1];
} }
System.out.println("最大值为:" + temp);
}
}
Scanner reader = new Scanner(System.in);
System.out.print("请输入数组的个数:");
int count = reader.nextInt();
int[] array = new int[count];
for (int i = 0; i < array.length; i++) {
array[i] = reader.nextInt();
}
System.out.println("你输入的数组是:");
for (int j = 0; j < array.length; j++) {
System.out.print(array[j] + " ");
}
int temp = 0;
for (int i = 0; i < array.length - 1; i++) {
if (array[i] > array[i + 1]) {
temp = array[i];
array[i] = array[i + 1];
array[i + 1] = temp;
}
}
System.out.println("最大的数是:" + temp);
}
}
for(int i=1; i<array.length;i++){
if(array[i]>max) max=array[i];
}或者求最大值的下标:
int maxIndex=0;
for(int i=1;i<array.length;i++){
if(array[i]>array[maxIndex]) maxIndex=i;
}
Systme.out.println(array[maxIndex]);这是标准的求最大值的算法,怎么你们都搞那么复杂呢?还把原数组给糟蹋的乱七八糟?
int max=array[0];
for(int i=1; i <array.length;i++){
if(array[i]>max) max=array[i];
} 如bigbug所说,这个效率最高,而且不改动原始数据,是比较好的方法了。