2015-08-28 2 views
-2

Я написал код на Java, чтобы создать Треугольник Паскаля. У меня есть два ноутбука дома, один с Windows Vista Home Basic, а другой с Windows 8.1 SingleLanguage, оба из которых имеют ту же самую версию java-загрузки. Приведенный ниже код отлично работает в Win Vista, но дает логическую ошибку, когда я пытаюсь запустить тот же код в Win 8.1. Что может быть причиной этого?Тот же код Java, работающий на одном компьютере, а не на другом

Это проект кодекса, который я составил в последнее время:

import java.util.*; 
class PascalsTriangle 
{ 
    int ROW,max=0; 
    void main() 
    { 
     Scanner sc = new Scanner (System.in); 
     System.out.println(" Input the number of rows in the Pascals Triangle to be generated. "); 
     ROW = sc.nextInt(); 
     int[][] pascal = new int [ROW+1][]; 
     pascal[1] = new int [1+2]; 
     pascal[1][1] = 1; 
     int i,k=0,j,len=0; 
     String str=""; 
     for(i=2;i<=ROW;i++) 
     { 
      pascal[i] = new int [i+2]; 
      for(j=i;j<pascal[i].length-1;j++) 
      { 
       pascal[i][j] = pascal[i-1][j-1] + pascal[i-1][j]; 
       str = Integer.toString(pascal[i][j]); 
       len = str.length(); 
       if(len>max) 
       { 
        max = len; 
       } 
      } 
     } 
     for(i=1;i<=ROW;i++) 
     { 
      for(k=ROW;k>i;k--) 
      { 
       System.out.format("%-" + max + "s", " "); 
      } 
      for(j=i;j<pascal[i].length-1;j++) 
      { 
       System.out.format("%-" + (max+max) + "s", pascal[i][j]); 
      } 
      System.out.println(); 
     } 
    } 
+0

У вас есть одна и та же версия Java на обеих машинах? –

+0

Какое сообщение об ошибке вы получаете? Я получаю 'Ошибка: главный метод не найден в классе PascalsTriangle, пожалуйста, определите основной метод как: public static void main (String [] args)', который говорит что-то – flaschenpost

+0

Может ли PLZ использовать ** логическую ошибку **? – Bikku

ответ

0

void main(), кажется, работает только на некоторых ява версий. Я пишу это как

class PascalsTriangle 
{ 
    public static void main (String[] args) 
    { 
    int ROW,max=0; 
    Scanner sc = new Scanner (System.in); 
    System.out.println(" Input the number of rows in the Pascals Triangle to be generated. "); 

// ... 

Но я получаю только первый «1» в позиции нисходящей, что вполне хорошее начало во всех смыслах. ;-)

EDIT: Следующие вещи найдены

Затем вы начинаете с позиции я в строке 19, в

 for(j=i;j<pascal[i].length-1;j++) 

Я определенно хотел бы начать в положении 2, а не в положении я. Или вы должны обновить оба значения, слева и справа, используя для оптимизации оптимизацию.

То же самое на выходе: как вы получаете 4 значения в строке 4, когда вы только начинаете в позиции i?

Если я начну добавлять в позицию 2 в строке 19 и начать вывод в позиции 1, все выглядит хорошо.

+0

Правда, но я использую void main() для всех моих других кодов, которые не генерируют ошибку. –

+0

Я попробовал, но снова получил ту же ошибку. –

+0

@SharanyaBanerjee Я добавил подсказку к вашей проблеме с индексом. Когда я начинаю добавлять в pos 2 вместо i и добавлять вывод в pos 1 вместо i, он работает на linux. – flaschenpost

Смежные вопросы