반응형
문제).
구조체를 이용하여 두 복소수 (2.50 +2.60i), (3.30-2.50i)의 더하기, 빼기, 곱하기, 및 절대값을 구하는 함수를 만들고 계산의 예를 출력하는 프로그램을 작성하시오.
실행 예1).
입력)
없음
결과).
더하기
( 2.5+2.6i ) + ( -3.3-2.5i ) = ( -0.8+0.1i )
빼기
( 2.5+2.6i ) - ( -3.3-2.5i ) = ( 5.8+5.1i )
곱하기
( 2.5+2.6i ) - ( -3.3-2.5i ) = ( -1.75-14.83i )
절대값
|( 2.5+2.6i )| = 3.60694
|( -3.3-2.5i )| = 4.14005
답은 아래에... ↓
스스로 풀어보시고... ↓
아래 답과 비교해보세요. ↓
프로그램 소스
#include <stdio.h>
#include <math.h>
struct complex
{
double real;
double image;
};
void print_complex(const struct complex *cl)
{
if(cl->real == 0.0 && cl->image == 0.0) {
printf("0");
} else if(cl->real == 0) {
printf("( %lgi )", cl->image);
} else if(cl->image == 0){
printf("( %lg )", cl->real);
} else {
printf("( %lg%+lgi )", cl->real, cl->image);
}
}
void plus_complex(const struct complex *c1, const struct complex *c2)
{
struct complex result;
result.real = c1->real + c2->real;
result.image = c1->image + c2->image;
print_complex(c1);
printf(" + ");
print_complex(c2);
printf(" = ");
print_complex(&result);
printf("\n");
}
void minus_complex(const struct complex *c1, const struct complex *c2)
{
struct complex result;
result.real = c1->real - c2->real;
result.image = c1->image - c2->image;
print_complex(c1);
printf(" - ");
print_complex(c2);
printf(" = ");
print_complex(&result);
printf("\n");
}
void multiple_complex(const struct complex *c1, const struct complex *c2)
{
struct complex result;
result.real = c1->real * c2->real + c1->image * c2->image * -1.0;
result.image = c1->real * c2->image + c1->image * c2->real;
print_complex(c1);
printf(" - ");
print_complex(c2);
printf(" = ");
print_complex(&result);
printf("\n");
}
void abs_complex(const struct complex *c)
{
double value = sqrt(c->real * c->real + c->image * c->image);
printf("|");
print_complex(c);
printf("| = %lg\n", value);
}
int main(int argc, char **argv)
{
struct complex c1 = {2.5, 2.6}, c2 = {-3.3, -2.5};
printf("더하기\n");
plus_complex(&c1, &c2);
printf("빼기\n");
minus_complex(&c1, &c2);
printf("곱하기\n");
multiple_complex(&c1, &c2);
printf("절대값\n");
abs_complex(&c1);
abs_complex(&c2);
return 0;
}
프로그램소스
반응형
'C언어 문제 > 수학 문제' 카테고리의 다른 글
오일러 파이 함수(Eulerφ函數: Euler’s phi (totient) function) 구현 (0) | 2020.06.22 |
---|---|
한 변의 길이가 100이하인 직각 삼각형 구하기 (0) | 2020.06.12 |
[삼각함수] 0˚ ~ 180˚의 sin값 구하기 (0) | 2019.12.20 |
연립방정식 x, y의 값을 구하시오. (0) | 2019.12.18 |
소수 여부 판단하는 알고리즘 (제곱근 범위 나누기법) (0) | 2019.12.04 |