2016-01-03 8 views
-2

Мне нужно напечатать окружность Math.random() * Math.Pi;, но я делаю что-то неправильно или что-то не хватает. Каждое произвольное сгенерированное число равно радиусу круга. Моя идея состояла в том, чтобы вычислить Пи в getRandomNumberInRange method, но когда я делаю, я получаю сообщение об ошибке:Как рассчитать окружность со случайными числами?

Bad operand for type double

import java.util.Random; 
import java.util.Scanner; 

    final static double PI = 3.141592564; 
    static Scanner sc = new Scanner(System.in); 

     public static void main(String[] args) { 

    //ask the player to enter a number less than or equal to 18 and higher to 9. 

          System.out.println(" Please enter a number less than or equal to 18 and above 9: "); 
          int random = sc.nextInt(); 

          //send error message if bad input 
           if (random < 9 || random > 18) { 
       System.out.println(" Error. Unauthorized entry . You need to enter a number less than or equal to 18 and above 9 "); 
      } else 

          //If the answer is yes , generate nine different random numbers from 0. 
          for (int i = 0; i < 9; i++) { 

            double surface = PI * (random * 2); 

       System.out.println(getRandomNumberInRange(9, 18) + " : " + " The circumference is : " + surface); 
      }} 

Метод называется:

private static int getRandomNumberInRange(int min, int max) { 

     Random r = new Random(); 

       return r.nextInt((max - min) + 1) + min; 
    } 
+0

Предполагая, что 'surface' должна быть окружность, вы генерирующий случайное число, но вы не используете, что случайное число, чтобы вычислить окружность. Вы вычисляете окружность с переменной с именем 'random', но эта переменная не является случайным числом. Я действительно не знаю, чего вы пытаетесь достичь. – ajb

+0

Для вычисления окружности необходимо использовать только девять сгенерированных чисел. Пользователь вводит число от 9 до 18. Скажем 10. Этот ввод будет генерировать 9 случайных чисел. Каждое генерируемое число равно другому радиусу. –

+0

Я не могу сказать, откуда исходит ошибка. Компилятор сообщит вам, какой номер строки содержит ошибку. Пожалуйста, выясните, к какой строке относится этот номер, и дайте нам знать. (И не просто сообщите нам номер строки, это не поможет нам. Лучше всего отредактировать ваш вопрос и добавить текст в строку «ОШИБКА ЗДЕСЬ» или что-то в этом роде. – ajb

ответ

1

Вы называете getRandomNumberInRange() в цикл, но не присваивайте его никому или не используйте. Это, вероятно, ближе к тому, что вы хотите:

 for (int i = 0; i < 9; i++) { 
      int r2 = getRandomNumberInRange(9, 18); 
      double surface = PI * (r2 * 2); 

      System.out.println(r2 + " : " + " The circumference is : " + surface); 
     } 
Смежные вопросы