题目:
按照需求实现如下代码:
a、定义一个int类型的数组,该数组的长度为10
b、获取10个1 - 100之间的随机数,存储到数组中。并且保证该数组中的元素唯一(没有重复元素);
c、打印数组,格式为:"[元素1, 元素2, 元素3, ...]"
d、求数组中索引为偶数或者元素为偶数的和
个人代码,请指教:
import java.util.Random;
public class demo02 {
public static void main(String[] args) {
int[] arr=new int[10];
Random random=new Random();
boolean flag=true;//判断是否赋值
for (int i = 0; i < arr.length; i++) {//控制个数
flag=true;//每次循环都要重新调整
int temp=random.nextInt(100)+1;//获得一个数
for (int j = 0; j <= i; j++) {//判断重复
if(temp==arr[j]){
i--;//相等的话,只能让这次无效,继续
flag=false;
break;
}
}
if(flag){//不相等
arr[i]=temp;//不相等
}
}
printnArr(arr);//打印数组
//定义一个变量存储getOutSum函数返回的值
int sum=getOutSum(arr);
//输出这个结果
System.out.println("数组中索引为偶数或者元素为偶数的和"+sum);
}
//求和---数组中索引为偶数或者元素为偶数的和
public static int getOutSum(int[] arr) {
//1.for循环遍历
//2.先判断索引为偶数的,如果是就加入,不用再判断元素是偶数的了,
// 我第一个想到用短路模式 ||
//创建一个保存和的变量
int sum=0;
for (int i = 0; i < arr.length; i++) {
//数组中索引为偶数或者元素为偶数
if(i % 2 ==0 || arr[i] % 2 ==0 ){//我才不管你是什么,总之满足就好
sum+=arr[i];
}
}
return sum;
}
//打印数组
public static void printnArr(int[] arr){
for (int i = 0; i < arr.length; i++) {
if(i==0){
System.out.print("[");
}
if(i<arr.length-1){
System.out.print(arr[i]+",");
}else{
System.out.print(arr[i]+"]");
System.out.println();
}
}
}
} |
|