2015-07-21 69 views
-1
import java.util.Scanner; 

class pyth{ 
    public static void main(String[] args) { 
     System.out.println("enter n"); 
     Scanner in=new Scanner(System.in); 
     int n=in.nextInt(); 
     { 
      for(int a=1;a>n;a++) { 
       for(int b=a+1;b>n;b++) { 
        int c=n-a-b ; 
       } 
       if(c*c=a*a+b*b) { 
        System.out.println(a+','+b+','+c+','); 
       } 
      } 
     } 
    } 
} 

我是編程新手,所以我無法真正弄清楚問題所在。這是錯誤:java編程給出「符號錯誤」

pyth.java:15: error: cannot find symbol if(cc=aa+b*b)

^ symbol: variable c

location: class pyth

+0

您在範圍外使用了'c'。也許把'if'移到'for'裏面。 –

+0

''''if'語句上方的'for循環'不能訪問'c';你在'if'語句中使用賦值'=',因爲它比較時應該使用'=='。你有兩個無限循環:你的'for'語句,即'a大於n增加a',與'b'相同。 – CoderMusgrove

回答

1

首先,語法非常重要。保持縮進。使代碼更易於閱讀和理解,並且有助於維護。

在你的代碼中的錯誤:

  1. int c=n-a-b ; C是在比較中使用。所以需要事先聲明。同樣,int b也必須在if語句中用於聲明。

  2. if(c * c = a * a + b * b)=是賦值運算符。使用==進行比較。並使用更多的括號來消除歧義。

此外:

的System.out.println(A + ' '+ B +', '+ C +',');這不是一個錯誤,但它更好地使用","

這應該workd:

import java.util.Scanner; 

class pyth{ 
    public static void main(String[] args){ 
     System.out.println("enter n"); 
     Scanner in=new Scanner(System.in); 
     int b,c; 
     int n=in.nextInt(); 

     for(int a=1;a>n;a++) { 
      for(b=a+1;b>n;b++) { 
       c=n-a-b ; 
      } 

      if(c*c==(a*a+b*b)) { 
       System.out.println(a+","+b+","+c+","); 
      } 
     } 
    } 
} 
+1

不要改變** ONE **角色,甚至不要指出**你改變了什麼**。 –

+0

thanx ,,,但它仍然顯示錯誤:變量聲明不允許在這裏 int c = n-a-b;} – Rak

+0

,因爲你在for循環中再次寫了int c。此代碼將起作用。我已經更新了它。語法很重要。保持縮進和正確的括號。 :) –

0
  if(c*c=a*a+b*b) { 
        ^--- assignment 

您不能分配一個表達到另一個表達式的結果。它應該是==

0

好的,你的編譯錯誤的問題是變量的範圍。

您在for塊中定義了int c = n-a-b,並且該塊不在該塊外部訪問。

類似地,變量b是不是塊外部接近

for (int b = a + 1; b > n; b++) { 
    c = n - a - b; 
} 

,因爲它的範圍結束於環路的末端。

另外,如果您正在檢查相等性,您應該使用==而不是=,這是用於賦值。

我不知道你想通過你的代碼做什麼,但代碼應該是如下:

import java.util.Scanner; 

public class pyth { 
    public static void main(String[] args) { 
     System.out.println("enter n"); 
     Scanner in = new Scanner(System.in); 
     int n = in.nextInt(); 
     int c = 0, a=0, b=0; 

     for (a = 1; a > n; a++) { 
      for (b = a + 1; b > n; b++) { 
       c = n - a - b; 
      } 
      if ((c * c) == (a * a) + (b * b)) 
       System.out.println(a + ',' + b + ',' + c + ','); 
     } 
    } 
} 

希望有所幫助。如果它幫助你,請接受這個答案。