完成昨天剩下的三个题目,冲冲冲!
需求:已知一个数组 arr = {19, 28, 37, 46, 50}; 键盘录入一个数据,查找该数据在数组中的索引,并在控
制台输出找到的索引值。
package hELLO;
import java.util.Scanner;
public class szpd {
public static void main(String[] args) {
int[] arr = new int[]{19,28,37,46,50};
Scanner sc = new Scanner(System.in);
int x = sc.nextInt();
int y = -1;
for(int i=0; i<arr.length; i++){
if(x == arr[i]){
y=i;
break;
}
}
if(y == -1){
System.out.println("数组中没有与之相同的数");
}else {
System.out.println("数组中的第"+(y+1)+"个数与其相同");
}
}
}
在本题中,碰到了一个问题,就是为什么break如果放在if语句外面for循环里面的话,Y的值就不会发生改变,想知道这是为什么,求大佬解答。
2.
需求:已知一个数组 arr = {19, 28, 37, 46, 50}; 用程序实现把数组中的元素值交换,
交换后的数组 arr = {50, 46, 37, 28, 19}; 并在控制台输出交换后的数组元素。**
```java
package hELLO;
public class daoxu {
public static void main(String[] args) {
int[] arr = new int[]{19,28,37,46,50};
for(int i=0, l=arr.length-1; i<=l; i++, l--){
int x = arr[i];
arr[i] = arr[l];
arr[l] = x;
}
for(int y=0; y<arr.length; y++){
System.out.println(arr[y]);
}
}
}
这里要注意在for循环中要记得两个要用,连接。
需求:在编程竞赛中,有6个评委为参赛的选手打分,分数为0-100的整数分。
选手的最后得分为:去掉一个最高分和一个最低分后 的4个评委平均值 (不考虑小数部分)。
package hELLO;
import java.util.Scanner;
public class df {
public static void main(String[] args) {
int[] arr = new int[6];
Scanner sc = new Scanner(System.in);
for(int i=0; i<arr.length; i++){
System.out.println("请输入第"+(i+1)+"个裁判打的分数");
arr[i] = sc.nextInt();
}
int x = sum(arr);
int y = max(arr);
int z = min(arr);
int m = (x-y-z)/(arr.length-2);
System.out.println("最终的得分情况为"+m+"分");
}
public static int sum(int[] arr){
int x =0;
for(int i=0; i<arr.length; i++){
x += arr[i];
}
return x;
}
public static int max(int[] arr){
int Max = arr[0];
for(int i=0; i<arr.length; i++){
if(Max<=arr[i]){
Max = arr[i];
}
}
return Max;
}
public static int min(int[] arr){
int Min = arr[0];
for(int i=0; i<arr.length; i++){
if(Min>=arr[i]){
Min = arr[i];
}
}
return Min;
}
}
这一题最主要的就是构建方法的思路。