Ну, я занимаюсь практикой (готовясь к среднесрочной перспективе), и я смог получить один из выходов правильно. Тем не менее, я затрудняюсь получить средний вклад. Он заканчивается на 12.0 вместо 6.5Получение неправильного вывода? Мое кодирование, возможно, выключено?
Вот оперативный вопрос: 5.
Заполните следующую программу Java, заполнив тела функций sum(), avg() и ord(). Вызов sum (n) должен возвращать сумму всех целых чисел от 1 до n, а avg (n) возвращает среднее значение того же набора чисел. Вызов булевой функции ord (x, y, z) возвращает true, если x < y < z и false в противном случае. Функция Main() должен произвести следующий вывод
Выход:
6,5 верно неверно
Это мой код:
class Problem5 {
// sum(): return 1+2+3+..+n
static int sum(int n) { //this is given
int sum = 0;
for(int i=0; i<n; i++) {
sum += n;
}
return n;
}
// avg(): return average of {1,2,..,n}
static double avg(int n) { // given
double sum = 0;
for (int i=1; i<n; i++) {
sum +=n;
}
return sum/n;
}
//ord(): return true if and only if x<y<z
static boolean ord(double x, double y, double z){ //given
if (x < y && y <z){
return true;
} else {
return false;
}
}
public static void main (String[]args) {
System.out.println(avg(12));
System.out.println(ord(1.2,3.4,5.6));
System.out.println(ord(3.4,1.2,5.6));
}
}
В целом у меня возникли проблемы кодирования/заполнения код для и static double avg(int)
.
это не скомпилируется, так как 'sum' не объявляется в' avg'. – njzk2
В вашем отступе есть много чего ... – DaaaahWhoosh
Быстрее было бы «возвращать n * (n + 1)/2', но я думаю, что цель состоит в том, чтобы понимать кодировку, а не математику ... ;-) – Axel