구조체를 사용한 복소수의 절대값만들기.
#include
#include
struct number{
double realnumber;
double imaginarynumber;
};
typedef struct number number;
void add(number number1, number number2){
printf("덧셈 \n");
double x, y, a, b;
x = number1.realnumber;
y = number1.imaginarynumber;
a = number2.realnumber;
b = number2.imaginarynumber;
printf("(%.2lf+%.2lfi) + (%.2lf%.2lfi) = (%.2lf + %.2lfi)\n", x, y, a, b, x + a, y + b);
printf("\n");
}
void minus(number number1, number number2){
printf("뺄셈 \n");
double x, y, a, b;
x = number1.realnumber;
y = number1.imaginarynumber;
a = number2.realnumber;
b = number2.imaginarynumber;
printf("(%.2lf+%.2lfi) - (%.2lf%.2lfi) = (%.2lf + %.2lfi)\n", x, y, a, b, x - a, y - b);
printf("\n");
}
void multiply(number number1, number number2){
printf("곱셈 \n");
double x, y, a, b;
x = number1.realnumber;
y = number1.imaginarynumber;
a = number2.realnumber;
b = number2.imaginarynumber;
printf("(%.2lf+%.2lfi) * (%.2lf%.2lfi) = (%.2lf %.2lfi)\n", x, y, a, b, (x * a) + (-(y*b)), (x * b) + (y*a));
printf("\n");
}
void abs(number number2){
double x, y;
x = number2.realnumber;
y = number2.imaginarynumber;
printf("%.2lf", sqrt(x*x + y*y));
}
void main(){
number number1 = { +4.50, +5.60 };
number number2 = { -3.70, -5.50 };
add(number1, number2);
minus(number1, number2);
multiply(number1, number2);
printf("첫번째 복소수 절대값 \n");
abs(number1);
printf("두번째 복소수 절대값 \n");
abs(number2);
}
문제인 부분은 abs함수인데요 오류 나오는것이 cannot convert from 'number' to 'int'라고 뜨는데.. abs 부분에 int로 바꾸는부분도 없는데 왜이러는거죠??
C는 함수 오버로딩이 불가능합니다. 표준 라이브러리와
C는 함수 오버로딩이 불가능합니다. 표준 라이브러리와 겹치지 않는 함수 이름을 사용하세요.
댓글 달기