一道题目 半天没做出来

zpf290079626 2011-10-18 01:30:44
我是一个JAVA的初学者 有一道题请高手帮忙

1、 编写一个Java应用程序,计算并输出一维数组(9.8,12,45,67,23,1.98,2.55,45)中的最大值和最小值

看到有些人直接 double []d={9.8,12,45,67,23,1.98,2.55,45}; 这样就把输出结果该了啊 比如最大值就会输出67.0
...全文
415 34 打赏 收藏 转发到动态 举报
写回复
用AI写文章
34 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuzeitou 2011-10-19
  • 打赏
  • 举报
回复
[Quote=引用 32 楼 x19881216 的回复:]

引用 31 楼 zpf290079626 的回复:
这道题很简单 但是只有12楼是正确的 不信你们们看看 计算出的最大是是67.0 我希望的是67
因为我的题中并没有67.0 这个数!

莫名其妙,基本数据类型都没弄懂
[/Quote]

其实楼主主帖最后一句的意思应该就是说并不是不会取最大最小值,而是不想让输入的数据尤其是整数全变成double,所以我在上面用他们的公共父类Number去处理了
更那啥一点可以都扔给字符串,然后用BigDecimal去处理,就更不用担心精度问题,但效率也更低
dxqrr 2011-10-18
  • 打赏
  • 举报
回复
Arrays.sort
chenchenyangll 2011-10-18
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 x19881216 的回复:]

引用 13 楼 zengxy2009 的回复:

用Arrays这个类,是最方便的
但是为什么用这个类要报错呢? 是要导入什么包吗?还是 什么


java.util.Arrays

找最大最小值,排序並不是最好的方法
[/Quote]

+1

简简单单扫一遍就完了的事非要排序。。。
小绵羊 2011-10-18
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 zengxy2009 的回复:]

用Arrays这个类,是最方便的
但是为什么用这个类要报错呢? 是要导入什么包吗?还是 什么
[/Quote]

java.util.Arrays

找最大最小值,排序並不是最好的方法
游小曾 2011-10-18
  • 打赏
  • 举报
回复
用Arrays这个类,是最方便的
但是为什么用这个类要报错呢? 是要导入什么包吗?还是 什么
zhuzeitou 2011-10-18
  • 打赏
  • 举报
回复
楼主不想要把整数转成double的话,用Number吧

Number[] d = { 9.8, 12, 45, 67, 23, 1.98, 2.55, 45 };
Number min = null, max = null;
for (Number n : d) {
min = min == null ? n : (min.doubleValue() > n.doubleValue() ? n
: min);
max = max == null ? n : (max.doubleValue() < n.doubleValue() ? n
: max);
}
System.out.println("Max:" + max);
System.out.println("Min:" + min);
小绵羊 2011-10-18
  • 打赏
  • 举报
回复

public static void main(String[] args) throws Exception {
double[] array = { 9.8, 12, 45, 67, 23, 1.98, 2.55, 45 };

double min = array[0];
double max = array[0];

for (int i = 1; i < array.length; i++) {
min = Math.min(min, array[i]);
max = Math.max(max, array[i]);
}

System.out.println("min:" + min + "/max:" + max);
}
xueyong4712816 2011-10-18
  • 打赏
  • 举报
回复
看来大家都蛮热心的
小绵羊 2011-10-18
  • 打赏
  • 举报
回复
double和float不能简单的用><来比较
zhu6100441 2011-10-18
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 kiss601459202 的回复:]

用SORT For example

Java code
public static void main(String[] args){
double[] d={9.8,12,45,67,23,1.98,2.55,45};
Arrays.sort(d);
System.out.println("Max:"+d[d.length-1]);
……
[/Quote]
如果可以使用函数的话,此方法+1
nizhicheng 2011-10-18
  • 打赏
  • 举报
回复
7楼的方法很巧妙哦
kiss601459202 2011-10-18
  • 打赏
  • 举报
回复
用SORT For example

public static void main(String[] args){
double[] d={9.8,12,45,67,23,1.98,2.55,45};
Arrays.sort(d);
System.out.println("Max:"+d[d.length-1]);
System.out.println("Min:"+d[0]);
}
小绵羊 2011-10-18
  • 打赏
  • 举报
回复
[Quote=引用 31 楼 zpf290079626 的回复:]
这道题很简单 但是只有12楼是正确的 不信你们们看看 计算出的最大是是67.0 我希望的是67
因为我的题中并没有67.0 这个数!
[/Quote]
莫名其妙,基本数据类型都没弄懂
m540920181 2011-10-18
  • 打赏
  • 举报
回复
用double和float 都是比较好的,应为他们都是保留小数,如果用Int 型的,如果数组里面有两个参数的值分别是 3.24 。 3.67 int型的都会把他转换成3,这样就没法区别的,但用浮点数就可以区分,建议用浮点数
SasONsoft 2011-10-18
  • 打赏
  • 举报
回复

public class MaxMin {

/**
* @param args
*/
public static void main(String[] args) {
double []d={9.8,12,45,67,23,1.98,2.55,45};
out(d);
}
public static void out(double[] d) {
double max = 0;
double min = 100;
for(int i=0; i<d.length; i++) {
if(d[i]<min) min = d[i];
if(d[i]>max) max = d[i];
}
System.out.println("Max is: " + max + "Min is: " + min);
}
}
jijihahalala 2011-10-18
  • 打赏
  • 举报
回复
Arrays.sort(xx)先排序,第一个最小,最后一个最大。
Java高知社区 2011-10-18
  • 打赏
  • 举报
回复
我晕,这个问题也问,先接分再说!
xiaobeiweng 2011-10-18
  • 打赏
  • 举报
回复
学习了,嘿嘿
zpf290079626 2011-10-18
  • 打赏
  • 举报
回复
这道题很简单 但是只有12楼是正确的 不信你们们看看 计算出的最大是是67.0 我希望的是67
因为我的题中并没有67.0 这个数!
zpf290079626 2011-10-18
  • 打赏
  • 举报
回复
[Quote=引用 29 楼 dongchosenone 的回复:]
public class Test {
public static void main(String[] args) {
double []d={9.8,12,45,67,23,1.98,2.55,45};
double max = 0 ;
double min = d[0];
for(int i=0;i<d.length-1;i++){
if(d[i]>max) max = d[i……
[/Quote]


你没明白我的意思 单纯排序很简单 但是没必要 你的代码运行结果肯定都有小数, 比如67 但是人家题里头可是没有67这个数啊 我是想用到集合中的东西来解这个题
加载更多回复(14)

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧