Java 中未使用的参数与数组
Unused parameters in Java with array
我正在编写一个程序,从中间拆分一个偶数长度的数组,并找到两半中最大的一个。这是我到目前为止的代码,但是我不确定要将什么作为 calculateAverage 方法中的第一个参数传递。如有任何帮助,我们将不胜感激。
public int calculateAverage(int[] scores, int start, int end) {
int count = 0;
int score = 0;
for (int i = start; i < end; i++) {
score += scores[i];
count++;
}
score = (score / count);
return score;
}
public int scoresAverage(int[] scores) {
int endOfFirstHalf = (scores.length / 2) - 1;
int firstHalf = calculateAverage(scores[], scores[0], endOfFirstHalf);
int secondHalf = calculateAverage(scores[], scores[scores.length / 2], scores[scores.length - 1]);
if (firstHalf < secondHalf) {
return secondHalf;
} else {
return firstHalf;
}
}
请试试这个。
public class TestBench{
public static void main(String[] args){
int[] i = {1,2,3,4};
System.out.println(scoresAverage(i));
}
public static double calculateAverage(int[] scores, int start, int end) {
int count = 0;
double score = 0.0;
for (int i = start; i <= end; i++) {
score += scores[i];
count++;
}
score = (score / count);
return score;
}
public static double scoresAverage(int[] scores) {
int endOfFirstHalf = (scores.length / 2) - 1;
double firstHalf = calculateAverage(scores, 0, endOfFirstHalf);
double secondHalf = calculateAverage(scores, endOfFirstHalf + 1, scores.length - 1);
if (firstHalf < secondHalf) {
return secondHalf;
} else {
return firstHalf;
}
}
}
int secondHalf = calculateAverage(scores[scores.length / 2],
scores[scores.length - 1]);
1.you 方法名称有错别字。
2.pass 一个数组名。应该有3个参数,不是2个。
它看起来应该有点像:
int firstHalf = calculateAverage(scores, 0, endOfFirstHalf);
int secondHalf = calculateAverage(scores,scores[scores.length / 2],
scores[scores.length - 1]);
您应该传递您的函数所期望的。无论如何,这是修改后的代码:
public class UnusedParam {
public int calculateAverage(int[] scores, int start, int end) {
int count = 0;
int score = 0;
for (int i = start; i <= end; i++) {
score += scores[i];
count++;
}
score = (score / count);
return score;
}
public int scoresAverage(int[] scores) {
int endOfFirstHalf = (scores.length / 2) - 1;
int firstHalf = calculateAverage(scores, 0, endOfFirstHalf);
int secondHalf = calculateAverage(scores,scores.length / 2, scores.length - 1);
if (firstHalf == secondHalf) {
System.out.print("First Half is the same as Second Half");
return secondHalf;
}
else if (firstHalf < secondHalf) {
System.out.print("Second Half is the largest");
return secondHalf;
}
else {
System.out.print("First Half is the largest");
return firstHalf;
}
}
public static void main(String[] args) {
int[] scores = {1,2,3,4,5,6,7,8};
UnusedParam up = new UnusedParam();
int retVal = up.scoresAverage(scores);
System.out.println(", "+retVal);
}
}
我正在编写一个程序,从中间拆分一个偶数长度的数组,并找到两半中最大的一个。这是我到目前为止的代码,但是我不确定要将什么作为 calculateAverage 方法中的第一个参数传递。如有任何帮助,我们将不胜感激。
public int calculateAverage(int[] scores, int start, int end) {
int count = 0;
int score = 0;
for (int i = start; i < end; i++) {
score += scores[i];
count++;
}
score = (score / count);
return score;
}
public int scoresAverage(int[] scores) {
int endOfFirstHalf = (scores.length / 2) - 1;
int firstHalf = calculateAverage(scores[], scores[0], endOfFirstHalf);
int secondHalf = calculateAverage(scores[], scores[scores.length / 2], scores[scores.length - 1]);
if (firstHalf < secondHalf) {
return secondHalf;
} else {
return firstHalf;
}
}
请试试这个。
public class TestBench{
public static void main(String[] args){
int[] i = {1,2,3,4};
System.out.println(scoresAverage(i));
}
public static double calculateAverage(int[] scores, int start, int end) {
int count = 0;
double score = 0.0;
for (int i = start; i <= end; i++) {
score += scores[i];
count++;
}
score = (score / count);
return score;
}
public static double scoresAverage(int[] scores) {
int endOfFirstHalf = (scores.length / 2) - 1;
double firstHalf = calculateAverage(scores, 0, endOfFirstHalf);
double secondHalf = calculateAverage(scores, endOfFirstHalf + 1, scores.length - 1);
if (firstHalf < secondHalf) {
return secondHalf;
} else {
return firstHalf;
}
}
}
int secondHalf = calculateAverage(scores[scores.length / 2],
scores[scores.length - 1]);
1.you 方法名称有错别字。
2.pass 一个数组名。应该有3个参数,不是2个。
它看起来应该有点像:
int firstHalf = calculateAverage(scores, 0, endOfFirstHalf);
int secondHalf = calculateAverage(scores,scores[scores.length / 2],
scores[scores.length - 1]);
您应该传递您的函数所期望的。无论如何,这是修改后的代码:
public class UnusedParam {
public int calculateAverage(int[] scores, int start, int end) {
int count = 0;
int score = 0;
for (int i = start; i <= end; i++) {
score += scores[i];
count++;
}
score = (score / count);
return score;
}
public int scoresAverage(int[] scores) {
int endOfFirstHalf = (scores.length / 2) - 1;
int firstHalf = calculateAverage(scores, 0, endOfFirstHalf);
int secondHalf = calculateAverage(scores,scores.length / 2, scores.length - 1);
if (firstHalf == secondHalf) {
System.out.print("First Half is the same as Second Half");
return secondHalf;
}
else if (firstHalf < secondHalf) {
System.out.print("Second Half is the largest");
return secondHalf;
}
else {
System.out.print("First Half is the largest");
return firstHalf;
}
}
public static void main(String[] args) {
int[] scores = {1,2,3,4,5,6,7,8};
UnusedParam up = new UnusedParam();
int retVal = up.scoresAverage(scores);
System.out.println(", "+retVal);
}
}