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
答案 0 :(得分:1)
首先,语法非常重要。保持缩进。使代码更易于阅读和理解,也有助于维护。
代码中的错误:
int c=n-a-b ;
c正用于if比较。所以需要事先声明。同样,int b
也必须事先声明,以便在if语句中使用。
if(c * c = a * a + b * b)=
是赋值运算符。使用==
进行比较。并使用更多括号来消除歧义。
另外:
的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 + ',');
}
}
}
希望有所帮助。如果有帮助,请接受这个答案。