Java编程

7. 某一歌手参加歌曲大奖赛,有5个评委对她的进行打分(存放在一个数组里score[]),试编程求这位选手的最终得分(原则:去掉一个最高分和一个最低分后的平均得分)。
8. 将已存入一个数组中的值25,56,36,0,7,89,按照从小到大的顺序打印出来。

第1个回答  2012-05-08
import java.util.Arrays;

public class Admin {

public static void main(String[] args) {

// 7.
// 某一歌手参加歌曲大奖赛,有5个评委对她的进行打分(存放在一个数组里score[]),试编程求这位选手的最终得分(原则:去掉一个最高分和一个最低分后的平均得分)。
int[] score = { 100, 99, 98, 97, 96 };

int max = getMax(score);
int min = getMin(score);

int idx = 0;
int sum = 0;
for (int i = 0; i < score.length; i++) {
sum += score[i];
idx++;
}
int avg = (sum-max-min) / idx;
System.out.println("平均分:" + avg);
private static int getMax(int[] score) {
int max = Integer.MIN_VALUE;
for (int i = 0; i < score.length; i++) {
max = Math.max(max, score[i]);
}
return max;
}

private static int getMin(int[] score) {
int min = Integer.MAX_VALUE;
for (int i = 0; i < score.length; i++) {
min = Math.min(min, score[i]);
}
return min;
}
// 8. 将已存入一个数组中的值25,56,36,0,7,89,按照从小到大的顺序打印出来。
Integer[] arr = { 25, 56, 36, 0, 7, 89 };
Arrays.sort(arr);
System.out.println(Arrays.deepToString(arr));
}
第2个回答  2012-05-08
for (int i = 0; i < score.length; i++) {
if (score[i] != max && score[i] != min) {
sum += score[i];
idx++;
}
}

这一块有bug,呵呵。
如果打的分数是“99,99,97,98,90,90,91“,会出问题的!
要去掉“一个”最高分,去掉“一个”最低分。
第3个回答  2012-05-08
7.

public class T {
public static void main(String args[]) {
int[] score = { 1, 2, 4, 4, 5 };

int max = score[0];
int min = score[0];
int sum = 0;
double avg = 0;

for (int i = 0; i < 5; i++) {
max = max > score[i] ? max : score[i];
min = min < score[i] ? min : score[i];

sum += score[i];
}

sum = sum - max - min;
avg = sum / 3.0;

System.out.println(avg);
}
}

8.

public class T {
public static void main(String args[]) {
int[] data = { 25, 56, 36, 0, 7, 89 };

for (int i = 0; i < data.length; i++) {
int min = i;

for (int j = i; j < data.length; j++) {
min = data[min] < data[j] ? min : j;
}

int tmp = data[i];
data[i] = data[min];
data[min] = tmp;
}

for (int i = 0; i < data.length; i++) {
System.out.print(data[i] + " ");
}

System.out.println("");
}
}本回答被提问者采纳
第4个回答  2012-05-08
import java.util.Arrays;

public class Admin {

public static void main(String[] args) {

// 7.
// 某一歌手参加歌曲大奖赛,有5个评委对她的进行打分(存放在一个数组里score[]),试编程求这位选手的最终得分(原则:去掉一个最高分和一个最低分后的平均得分)。
int[] score = { 99, 99, 98, 98, 96 };

int max = getMax(score);
int min = getMin(score);

int idx = 0;
double sum = 0;
boolean maxFlg = false;
boolean minFlg = false;
for (int i = 0; i < score.length; i++) {
if (!maxFlg && score[i] == max) {
maxFlg = true;
continue;
}
if (!minFlg && score[i] == min) {
minFlg = true;
continue;
}

sum += score[i];
idx++;
}
double avg = sum / idx;
System.out.println("平均分:" + avg);

// 8. 将已存入一个数组中的值25,56,36,0,7,89,按照从小到大的顺序打印出来。
Integer[] arr = { 25, 56, 36, 0, 7, 89 };
Arrays.sort(arr);
System.out.println(Arrays.deepToString(arr));
}

private static int getMax(int[] score) {
int max = Integer.MIN_VALUE;
for (int i = 0; i < score.length; i++) {
max = Math.max(max, score[i]);
}
return max;
}

private static int getMin(int[] score) {
int min = Integer.MAX_VALUE;
for (int i = 0; i < score.length; i++) {
min = Math.min(min, score[i]);
}
return min;
}
}
相似回答