java最大值最小值

254174254 2014-03-04 02:57:59
import java.util.Scanner;

public class Main {

public static void main(String[] args) {

Scanner scanner=new Scanner(System.in);
int n=scanner.nextInt();
int[] arr=new int [n];
int Max=0;
int Min=0;
for(int i=0;i<arr.length;i++){
int m=scanner.nextInt();
arr[i]=m;
}
int sum=0;
for(int i=0;i<arr.length;i++){
if(arr[i]>Max){
Max=arr[i];
}else if(arr[i]<Min){
Min=arr[i];
}
sum+=arr[i];
}
System.out.println(Max);
System.out.println(Min);
System.out.println(sum);

}

}

为什么最大值能出来,而最小值总是0;什么原因
...全文
219 17 打赏 收藏 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
逍遥jc 2014-03-05
  • 打赏
  • 举报
回复
其实只要min=arr[0],max=arr[0]就好了。
haha_321 2014-03-04
  • 打赏
  • 举报
回复
把最大值和最小值都初始化为数组第一个数就挺好的。
BinV5 2014-03-04
  • 打赏
  • 举报
回复
else if(arr[i]<Min){ Min=arr[i]; } 问题出现在这。。。 建议你可以初始化Min = arr[0]
卡卡吉利 2014-03-04
  • 打赏
  • 举报
回复
public class Test {

	public static void main(String[] args) {

		Scanner scanner = new Scanner(System.in);
		int n = scanner.nextInt();
		if(n <= 0){//要判断N的大小
			System.out.println("无效输入");
			return;
		}
		int[] arr = new int[n];
		int Max = 0;
		int Min = 0;
		for (int i = 0; i < arr.length; i++) {
			int m = scanner.nextInt();
			arr[i] = m;
			
		}
		int sum = 0;
		Min = arr[0];
		for (int i = 0; i < arr.length; i++) {
			if (arr[i] > Max) {
				Max = arr[i];
			} 
			if(arr[i] < Min){
				Min = arr[i];
			}
			
			sum += arr[i];
		}
		System.out.println(Max);
		System.out.println(Min);
		System.out.println(sum);

	}

}
haha_321 2014-03-04
  • 打赏
  • 举报
回复
你这代码里用if 和else if 逻辑不对吧。
卡卡吉利 2014-03-04
  • 打赏
  • 举报
回复
引用 8 楼 u010335319 的回复:
package com.company.test2; import java.util.Scanner; public class Test1 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); int[] arr = new int[n]; int Max = 0; int Min = 0; for (int i = 0; i < arr.length; i++) { int m = scanner.nextInt(); arr[i] = m; } int sum = 0; for (int i = 0; i < arr.length; i++) { if (arr[i] > Max) { Max = arr[i]; System.out.println("i..."+i); } sum += arr[i]; } for(int i=0;i<arr.length-1;i++){ if(arr[i]<arr[i+1]){ Min=arr[i]; } } System.out.println(Max); System.out.println(Min); System.out.println(sum); } }
而且还要遍历两遍
卡卡吉利 2014-03-04
  • 打赏
  • 举报
回复
引用 8 楼 u010335319 的回复:
package com.company.test2; import java.util.Scanner; public class Test1 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); int[] arr = new int[n]; int Max = 0; int Min = 0; for (int i = 0; i < arr.length; i++) { int m = scanner.nextInt(); arr[i] = m; } int sum = 0; for (int i = 0; i < arr.length; i++) { if (arr[i] > Max) { Max = arr[i]; System.out.println("i..."+i); } sum += arr[i]; } for(int i=0;i<arr.length-1;i++){ if(arr[i]<arr[i+1]){ Min=arr[i]; } } System.out.println(Max); System.out.println(Min); System.out.println(sum); } }
无人子弟,先不说你算法错误,就说要是最小的在最后,你能算出来最小数? 1,2,3,4.算一下这组数的最小值?
翔雨 2014-03-04
  • 打赏
  • 举报
回复
这个是修改后的,可以,你试试
翔雨 2014-03-04
  • 打赏
  • 举报
回复
package com.company.test2; import java.util.Scanner; public class Test1 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); int[] arr = new int[n]; int Max = 0; int Min = 0; for (int i = 0; i < arr.length; i++) { int m = scanner.nextInt(); arr[i] = m; } int sum = 0; for (int i = 0; i < arr.length; i++) { if (arr[i] > Max) { Max = arr[i]; System.out.println("i..."+i); } sum += arr[i]; } for(int i=0;i<arr.length-1;i++){ if(arr[i]<arr[i+1]){ Min=arr[i]; } } System.out.println(Max); System.out.println(Min); System.out.println(sum); } }
卡卡吉利 2014-03-04
  • 打赏
  • 举报
回复
你已经初始化Min=0,arr[i]<Min这个条件就不会执行,除非有小于0的数出现
xiesisi3 2014-03-04
  • 打赏
  • 举报
回复
应该是这样 int sum = 0; Min = arr[0]; for (int i = 0; i < arr.length; i++) { 不支持代码中插入颜色啊。。。
xiesisi3 2014-03-04
  • 打赏
  • 举报
回复

		int sum = 0;
		Min = arr[0];
		for (int i = 0; i < arr.length; i++) {
加上红色代码就可以了
254174254 2014-03-04
  • 打赏
  • 举报
回复
有没有好的解决办法
254174254 2014-03-04
  • 打赏
  • 举报
回复
恩,如果有就是对的,现在没有就错了,代码不完善
zuiai_LJX 2014-03-04
  • 打赏
  • 举报
回复
你没有输入小于0的数吧..
tony4geek 2014-03-04
  • 打赏
  • 举报
回复
你debug 调试看看。。

62,620

社区成员

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

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