2013-12-15 7 views
-3

Я спрашиваю «сколько строк» ​​и надеется, что он распечатает треугольник паскаля. Но я получаю сообщение об ошибке:Рисование треугольника Паскаля с пользовательским вводом (Java)

Исключение из потока "main" java.lang.Error: Неразрешенная проблема компиляции: метод nthPascalRow (int) в типе Pascal неприменим для аргументов (сканера) в Pascal. основной (Pascal.java:39)

Вот мой код

public class Pascal { 
    public static int[] nthPascalRow(int row) { 
     if (row == 0) { 
      int[] result = { 1 }; 
      return result; 

     } 
     if (row == 1) { 
      int[] result = { 1, 1 }; 
      return result; 
     } 
     int[] previous = { 1, 1 }; 
     for (int r = 2; r <= row; r++) { 
      int[] next = new int[r + 1]; 
      next[0] = 1; 
      for (int i = 1; i < r; i++) { 
       next[i] = previous[i - 1] + previous[i]; 
      } 
      next[r] = 1; 
      previous = next; 
     } 
     return previous; 

    } 

    public static void main(String[] args) { 
     Scanner input = new Scanner (System.in); 
     System.out.println("How many rows?"); 
     input.nextInt(); 
     int[] result = nthPascalRow(input); 
     for (int r : result) { 
      System.out.print(r + " "); 
     } 

    } 

} 
+1

ошибка компиляции очень явная (и несколько очевидная): nthPascalRow принимает int, а не сканер. –

+1

Тег 'pascal' предназначен для языка программирования Pascal, а не для треугольника Pascal. Пожалуйста, прочитайте отрывки тегов, прежде чем пометить свои вопросы. – Thomas

ответ

0

Вы должны добавить ввозных

import java.util.Scanner;

и использовать одну переменную для ввода целого числа, введенного пользователем

int index = input.nextInt(); 
    int[] result = nthPascalRow(index); 
0

вы получаете эту ошибку, потому что вы передаете в input, который является объектом Scanner, в то время как метод вы звоните оЖИДАЕТ int row.

Пересмотрите, что вы хотите передать методу.

0

Все, что вам нужно сделать, это установить

input.nextInt() 

переменной, а затем передать эту переменную методу пример:

int a = input.nextInt(); 
int[] result = nthPascalRow(a); 
Смежные вопросы