이 스레드를 읽은 주셔서 감사합니다. 나는 컴퓨터 과학 수업을위한 프로그램을 끝내려고 노력하고 있는데, 나는 왜 내 대답이 계속 0 + 0i로 나오는지 왜곡되어있다. 내 주요 프로그램을 실행하는 것입니다 여기복합 숫자를 사용하기 위해 만들어진 클래스에서 논리 오류가 발생했습니다.
public class complex
{
private int real, imaginary;
public complex(int real1, int imaginary1)
{
int real=real1;
int imaginary= imaginary1;
}
public int getReal()
{
return real;
}
public int getImag()
{
return imaginary;
}
public complex add(complex complex2)
{
int real1, real2, imag1, imag2;
real1=getReal();
real2=complex2.getReal();
imag1=getImag();
imag2=complex2.getImag();
int sumReal= real1+real2;
int sumImaginary = imag1+ imag2;
return new complex(sumReal, sumImaginary);
}
public complex subtract(complex complex2)
{
int sumReal= getReal() -complex2.getReal();
int sumImaginary = imaginary - complex2.getImag();
return new complex (sumReal, sumImaginary);
}
// (a1+b1i)(a2+b2)
public complex multiply(complex complex2)
{
int a1, b1, a2, b2, sumReal, sumImaginary;
a1=getReal();
b1=getImag();
a2=complex2.getReal();
b2=complex2.getImag();
sumReal=a1*a2-(b1*b2);
sumImaginary=b1*a2+a1*b2;
return new complex(sumReal, sumImaginary);
}
public String toString()
{
String results;
results= real + "+" + imaginary + "i";
return results;
}
과 : 프로그램을 실행하면
import java.util.Scanner;
public class complexRun
{
public static void main (String[] args)
{
Scanner scan= new Scanner(System.in);
int a1, a2, b1, b2;
a1=scan.nextInt();
a2=scan.nextInt();
b1=scan.nextInt();
b2=scan.nextInt();
complex complex1= new complex(a1, b1);
complex complex2 = new complex (a2, b2);
System.out.println(complex1.getReal());
System.out.println(complex1.add(complex2));
System.out.println(complex1.subtract(complex2));
System.out.println(complex1.multiply(complex2));
System.out.println(complex1.getReal());
}
}
, 당신이 대답 것 입력 어떤 것을 알 수 있습니다 여기
내 코드입니다 0 + 0i가된다. 내 논리 오류 내 getReal 및 getImaginary 부분 또는 개체의 초기 생성 거짓말을 믿지 만, 나는 그것을 해결하기 위해해야할지 모르겠다. 어떤 도움을 주셔서 감사 드리며, 오류를 수정하기 위해해야 할 일이 아니라 잘못된 것을 설명 할 수 있다면 정말 좋을 것입니다. 감사합니다.
tldr; 그것은 HW 태그면 그렇게. – Nishant
@Nishant : 그것은 * 태그가 달린 숙제입니다. –