2014-02-06 49 views
-4
import java.util.Scanner; 
class bazar 
{ 
    void calculate() 
    { 
     int sum=0; 
     Scanner sc = new Scanner (System.in); 
     System.out.println("Hi ! welcome to out advance calculator"); 
     System.out.println("Enter the number of items that you wish to compute"); 
     int c = sc.nextInt(); 
     String item[] = new String[c]; 
     int price[] = new int[c]; 
     sc.nextLine(); 
     for (int i=1; i<=c; i++) 
     { 
      System.out.println("please enter the item name : "); 
      item[i] = sc.nextLine(); 
      System.out.println(); 
      System.out.println("please enter the price of " +item[i]+":"); 
      price[i] = sc.nextInt(); 
      sc.nextLine(); 
      sum=sum+price[i]; 
     } 
     //display part 
     for (int k=1; k<=c; k++) 
     { 
      System.out.println( "ITEM      PRICE"); 
      System.out.println (item[k]+"     "+price[k]); 
     } 
     System.out.println(); 
     System.out.println(); 
     System.out.println(); 
     System.out.println(); 
     System.out.println("YOUR BILL TOTAL HAS COME TO----------------->"+sum); 
    } 
} 
+2

數組是0指數的,而不是1索引。你的for循環應該是:'for(int i = 0; i

+1

請不要要求我們爲你調試代碼......閱讀規則。此外,使用代碼標籤。最後,歡迎您,但您需要告訴我們您嘗試的內容以及控制檯的確切錯誤。 – Brendan

回答

1
int price[] = new int[c]; 
sc.nextLine(); 
for (int i=1; i<=c; i++) 

你正在創建使用C索引的數組。我們假設c是10.這意味着你的索引是0-9,總共有10個索引。然後,您循環到,包括 c。在我們的例子,這意味着你想嘗試進入指數10,但指數最高爲9

希望此相反:

for (int i=0; i<c; i++) 
+0

我試過這還是給了同樣的錯誤! – user3258215

+0

您的代碼中有幾處出現同樣的錯誤。 –

+0

可否請你告訴我要做什麼核心? – user3258215