求数组中的偶数并且该数字是数组的最小值!

雨纷飞_ 2016-11-14 11:38:09
我的代码是这样写的:
但是每次如果输入是1 它就最终返回1 不是一个偶数 !求大神解决~

/*
第一题(编程题: 30分)
获取指定数组中偶数元素值的最小值,要求如下:
定义static int getEven(int[] arr)方法,方法内要求:获取指定数组arr中偶数元素值的最小值,并返回
定义main方法,方法内完成:
1.定义一个int数组arr
2.键盘录入5个整数,存入数组arr中,并且录入之前提示输入的是第几个数字
3.传递arr调用getEven(int[] arr)方法,获取返回值
4.在控制台打印输出方法返回值

*/
import java.util.Scanner;
public class demo1{
public static void main(String[] args){

Scanner sc=new Scanner(System.in);
int[] arr=new int[5];
for(int i=0;i<arr.length;i++){
System.out.println("请输入数字");
int s=sc.nextInt();
arr[i]=s;
System.out.println("您输入的数字是:"+arr[i]+",第"+i+"个数字");
}
int y=0;
y=getEven(arr);
System.out.println("本数组中最小的偶数元素是"+y);
}
public static int getEven(int[] arr){
int ss=arr[0];
for(int i=0;i<arr.length;i++){
if( arr[i]%2==0 && arr[i]<ss){
ss=arr[i];
}

}
return ss;
}
}
...全文
515 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_33282742 2016-11-15
  • 打赏
  • 举报
回复

package com.han.test1;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/*
 *	第一题(编程题: 30分)
 *	获取指定数组中偶数元素值的最小值,要求如下:
 *	定义static int getEven(int[] arr)方法,方法内要求:获取指定数组arr中偶数元素值的最小值,并返回
 *	定义main方法,方法内完成:
 *	1.定义一个int数组arr
 *	2.键盘录入5个整数,存入数组arr中,并且录入之前提示输入的是第几个数字
 *	3.传递arr调用getEven(int[] arr)方法,获取返回值
 *	4.在控制台打印输出方法返回值
*/

public class demo1 {
	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		int[] arr = new int[5];
		for (int i = 0; i < arr.length; i++) {
			System.out.println("请输入数字");
			int s = sc.nextInt();
			arr[i] = s;
			System.out.println("您输入的数字是:" + arr[i] + ",第" + i + "个数字");
		}
		int y = 0;
		y = getEven(arr);
		if (y == 0) {
			System.out.println("输入的数组中没有偶数");
		} else {
			System.out.println("本数组中最小的偶数元素是" + y);
		}
	}

	public static int getEven(int[] arr) {
		int minNum = 0;
		List<Integer> list = new ArrayList<Integer>();
		for (int i = 0; i < arr.length; i++) {
			if (arr[i] % 2 == 0) {
				list.add(arr[i]);
			}
		}
		if (list.size() > 0) {
			minNum = list.get(0);
			for (int i = 0; i < list.size(); i++) {
				if (list.get(i) < minNum) {
					minNum = list.get(i);
				}
			}
		}
		return minNum;
	}
}
// 这个应该能够满足你的需求 方法就是将指定的数组中的数据 将数据中的偶数取出放入到List集合中 然后 在从list集合中取出最小的值 即为
// 指定数组中最小的偶数 如果返回的事默认的值 则证明没有偶数
qq_33282742 2016-11-15
  • 打赏
  • 举报
回复
package com.han.test1; import java.util.ArrayList; import java.util.List; import java.util.Scanner; /* * 第一题(编程题: 30分) * 获取指定数组中偶数元素值的最小值,要求如下: * 定义static int getEven(int[] arr)方法,方法内要求:获取指定数组arr中偶数元素值的最小值,并返回 * 定义main方法,方法内完成: * 1.定义一个int数组arr * 2.键盘录入5个整数,存入数组arr中,并且录入之前提示输入的是第几个数字 * 3.传递arr调用getEven(int[] arr)方法,获取返回值 * 4.在控制台打印输出方法返回值 */ public class demo1 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int[] arr = new int[5]; for (int i = 0; i < arr.length; i++) { System.out.println("请输入数字"); int s = sc.nextInt(); arr[i] = s; System.out.println("您输入的数字是:" + arr[i] + ",第" + i + "个数字"); } int y = 0; y = getEven(arr); if (y == 0) { System.out.println("输入的数组中没有偶数"); } else { System.out.println("本数组中最小的偶数元素是" + y); } } public static int getEven(int[] arr) { int minNum = 0; List<Integer> list = new ArrayList<Integer>(); for (int i = 0; i < arr.length; i++) { if (arr[i] % 2 == 0) { list.add(arr[i]); } } if (list.size() > 0) { minNum = list.get(0); for (int i = 0; i < list.size(); i++) { if (list.get(i) < minNum) { minNum = list.get(i); } } } return minNum; } } // 这个应该能够满足你的需求 方法就是将指定的数组中的数据 将数据中的偶数取出放入到List集合中 然后 在从list集合中取出最小的值 即为 // 指定数组中最小的偶数 如果返回的事默认的值 则证明没有偶数
  • 打赏
  • 举报
回复
//当不存在的是 你会返回 int ss=arr[0];里面的值,不光是1,只要是5个相同奇数都会返回。 //可以加一段代码

		if(ss%2==0){
			return ss;
		}else{
			return 0;
		}
//不过你代码有一个bug,假如输入第一个数是 1 的时候如果里面有偶数的时候你则返回1

62,621

社区成员

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

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