강의로 돌아가기
Lee

어디가 틀린건지 잘 모르겠어요

public class OperatorExam {
public int[] calculate() {
int a = 7;
int b = 3;

//c는 a와 b의 합
int c = a + b;
//d는 a와 b의 차
int d = a - b;
//e는 a와 b의 곱
int e = a * b;
//f는 a를 b로 나눈 나머지
int f = a % (double)b;

//이 아래 코드는 결과 테스트를 위한 코드입니다.
int ret[]={c,d,e,f};
return ret;
}

public static void main(String []args){
new OperatorExam().calculate();
}
}

어디가 틀린건가여?

작성중인 코드―OperatorExam
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class OperatorExam {
    public int[] calculate() {
        int a = 7; 
        int b = 3;

        //c는 a와 b의 합 
        int c = a + b;
        //d는 a와 b의 차
        int d = a - b;
        //e는 a와 b의 곱
        int e = a * b;
        //f는 a를 b로 나눈 나머지 
        int f = a % (double)b;

        //이 아래 코드는 결과 테스트를 위한 코드입니다.
        int ret[]={c,d,e,f};
        return ret;
    }

    public static void main(String []args){
        new OperatorExam().calculate();
    }
}
1 개의 답변
CODWW2

//f는 a를 b로 나눈 나머지
int f = a % (double)b;

a%b는 정수끼리 연산해서 결과도 정수가 나오기 때문입니다.
%연산자는 a를 b로 나눈 '나머지'를 계산하는 연산자 입니다.
즉 4%3 은 4나누기3 *** 나머지 1 이므로 정수값이니 굳이 더블(실수)형으로 변환할 필요가 없습니다.

그리고 a / b 는 정수 또는 실수로 계산하기 때문에 출력및 계산 을 정수 또는 실수로 변환해서 해야합니다.

답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.