java编程给出"符号错误"

时间:2015-07-21 20:15:45

标签: java

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+',');
                }
            }
        }
    }
}

我是编程新手,所以我无法弄清楚问题。这是错误:

  

pyth.java:15:错误:找不到符号   如果(C C = A A + B * B)

     

^符号:变量c

     

位置:类pyth

3 个答案:

答案 0 :(得分:1)

首先,语法非常重要。保持缩进。使代码更易于阅读和理解,也有助于维护。

代码中的错误:

  1. int c=n-a-b ; c正用于if比较。所以需要事先声明。同样,int b也必须事先声明,以便在if语句中使用。

  2. if(c * c = a * a + b * b)=是赋值运算符。使用==进行比较。并使用更多括号来消除歧义。

  3. 另外:

    的System.out.println(A + ' '+ B +', '+ C +',');这不是一个错误,但最好使用","

    这应该可行:

    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 :(得分:0)

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

您无法将一个表达式的结果分配给另一个表达式。它应该是==

答案 2 :(得分:0)

好的,编译错误的问题是变量的范围。

你在for block中定义了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 + ',');
        }
    }
}

希望有所帮助。如果有帮助,请接受这个答案。