K_blueprint

#9. 주어진 전자 회로에서 저항 값의 계산을 하는 프로그램을 만들어라 본문

C/실습 문제 모음

#9. 주어진 전자 회로에서 저항 값의 계산을 하는 프로그램을 만들어라

GODAGO 2023. 12. 29. 18:00
728x90
반응형

 < 문제 내용 >

● 전자 회로에서 저항 값의 계산은 다음의 두 가지 경우로 나누어서 계산된다.

Figma를 이용하여 제작한 직렬 회로 예시

 

위의 사진과 같이 저항들이 직렬로 연결되어 있을 경우의 저항 R = R1 + R2 + R3이 되고

Figma를 이용하여 제작한 병렬 회로 예시

 

위의 사진과 같이 저항들이 병렬로 연결이 되어 있을 경우에는 1/R = 1/R1 + 1/R2 + 1/R3이 된다.

 

그렇다면 아래와 같은 회로가 있을 때 다섯 개의 저항 값을 읽고 전체의 저항의 값을 구하는 프로그램을 작성하라.

(같은 저항 값이 두 번 사용된 곳도 있는 것에 주의하라.)

< 입력 조건 >

● 첫 줄에 다섯 개의 저항 값 R1, R2, R3, R4, R5가 정수로 주어진다.(단, 저항 값은 1 이상 1,000,000 이하의 정수이다.)

 

< 출력 조건 >

● 첫째 줄에 저항 값을 출력할 때 하나의 정수값이 나오도록 반올림하여 출력한다.

 

< 풀이 코드 >

#include <stdio.h>
#include <math.h>	// 헤더 파일 추가 

int main(void)
{
   int R1, R2, R3, R4, R5;		// 저항 값을 입력받을 정수형 변수 선언 
   int sum1, sum2, sum3, sum4, total;	// 각 연산의 결과를 저장할 정수형 변수 선언	 
   
   scanf("%d %d %d %d %d", &R1, &R2, &R3, &R4, &R5);	// 입력문 
   
   // 부분별 연산 
   sum1 = R1+R2;
   sum2 = (double)(1/sum1)+(1/R3);	// 반올림을 하기 위해 실수형으로 강제 형변환 
   sum3 = sum2+R5;
   sum4 = (1/R1)+(1/sum3);
   total = R3+round(sum4)+R4;	// round()를 사용하여 반올림 연산 
   
   printf("%d", total);		// 출력문 
   
   return 0;
}

 

< 출력 결과 >

 

( 반올림을 위한 "round()" 함수 사용을 위해 <math.h>헤더 파일을 추가해주어야 한다! )

728x90
반응형