일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 역순
- GUI
- Vim
- Spring email
- TCP/IP 소켓
- 오라클
- 자바
- URL 다운로드
- C언어 매크로
- C언어 구조체
- C언어 함수
- jsp
- 구글 reCaptcha
- Naver SmartEditor
- HTML5
- C언어
- placehoder
- 텍스트 파일 읽기
- C언어 파일입출력
- C언어 메모리
- SQL
- gcc
- 날짜
- Spring google
- Google reCaptcha
- java
- C언어 변수
- 포인터
- C언어 배열
- Oracle
- Today
- Total
easy software
C언어 구조체를 이용한 복소수(Complex Number) 덧셈과 곱셈 프로그램 본문
수학시간이 아니므로 복소수(Complex Number)에 대한 설명은 제외하기로 하겠습니다.
단, 문제의 이해를 위해서 복소수의 덧셈과 곱셈공식은 보여드리겠습니다.
복소수의 덧셈 공식 : (a+bi) + (c+di) = (a+c) + (b+d)i
복소수의 곱셈 공식 : (a+bi) * (c+di) = ac - bd + bci + adi
i는 허수입니다. 복소수에 대한 이해가 조금 부족하신 분들은
위의 공식에서 i를 제외하고 생각하셔도 무관합니다.
지금 보여드릴 프로그램에서는 복소수를 나타내는 구조체를 정의하고,
덧셈과 곱셈을 위한 함수를 정의했습니다.
main함수에서는 두 개의 복소수를 사용자로부터 입력받아서 덧셈과 곱셈 연산의 결과를 출력합니다.
실행의 예
*1.2가 a이고, 2.4는 b, 1.1은 c, 2.2는 d입니다. 연산할때 참고하세요.
#include <stdio.h>
//복소수를 나타내는 구조체
typedef struct{
double rNumber; //실수
double iNumber; //허수
}Complex;
//구조체를 먼저 선언한 후 함수가 있음을 표시해야 함
void comAdd(Complex, Complex);
void comMul(Complex, Complex);
int main(void){
Complex c1, c2;
//두개의 복소수를 입력받아 complex에 저장
printf("복소수 입력1(실수 허수) : ");
scanf("%lf %lf", &c1.rNumber, &c1.iNumber);
printf("복소수 입력2(실수 허수) : ");
scanf("%lf %lf", &c2.rNumber, &c2.iNumber);
comAdd(c1, c2); //복소수 덧셈함수 호출
comMul(c1, c2); //복소수 곱셈함수 호출
return 0;
}
//복소수의 덧셈을 담당하는 함수
void comAdd(Complex comA1, Complex comA2){
Complex add; //덧셈결과를 저장할 변수
add.rNumber = comA1.rNumber + comA2.rNumber;
add.iNumber = comA1.iNumber + comA2.iNumber;
printf("\n합의 결과] 실수부 : %f, 허수부 : %f\n", add.rNumber, add.iNumber);
}
//복소수의 곱셈을 담당하는 함수
void comMul(Complex comM1, Complex comM2){
Complex mul; //곱셈결과를 저장할 변수
mul.rNumber = comM1.rNumber * comM2.rNumber -
comM1.iNumber * comM2.iNumber;
mul.iNumber = comM1.iNumber * comM2.rNumber +
comM1.rNumber * comM2.iNumber;
printf("곱의 결과] 실수부 : %f, 허수부 : %f\n\n", mul.rNumber, mul.iNumber);
}
Complex에는 실수와 허수를 저장하는 멤버가 정의되어 있습니다.
이후에 사용자로부터 입력받은 두개의 복소수를 각각 Complex형 구조체에 저장하고,
저장된 값을 통해서 덧셈과 곱셈연산을 수행하는 함수를 호출합니다.
각 함수마다 새로 선언된 Complex변수에 곱셈과, 덧셈결과를 저장한 후 출력하고 있습니다.
사실 복소수의 덧셈, 곱셈 공식과 구조체의 기본 개념만 알아도 쉽게 구현할 수 있는 프로그램입니다.
만약, 구조체의 기본 개념과 선언 방법을 모른다면
제 블로그의 구조체 카테고리에서 공부해 보세요.
'C언어 > 구조체' 카테고리의 다른 글
C언어 구조체 배열을 이용한 간단한 도서관리 프로그램 (0) | 2015.02.16 |
---|---|
C언어 구조체의 유용함을 알아보자 (0) | 2015.02.08 |
C언어 구조체연산 (0) | 2015.02.08 |
C언어 구조체를 swap하기(구조체를 가리키는 포인터 변수) (0) | 2015.02.06 |
C언어 예제를 통한 구조체 사용 방법을 알아보자 (0) | 2015.02.05 |