어떤 상품이나 서비스의 원가(cost price, cp)와 판매가(selling price, sp)가 주어졌을 때, C 프로그램을 사용하여 이익이 발생했는지 손실이 발생했는지 판별하고 그 금액까지 출력하는 것이 이번 글의 목표입니다. 이익이 발생했다면 "Profit"과 그 금액을, 손실이 발생했다면 "Loss"와 그 금액을, 이익도 손실도 없다면 "No profit nor Loss"를 출력해야 합니다.
손익 판별의 기본 원리
이익과 손실을 구하려면 판매가(sp)와 원가(cp)를 서로 비교하면 됩니다. 원가가 판매가보다 높다면 물건을 산 가격보다 싸게 팔았다는 뜻이므로 손실로 간주되며, 두 값의 차이가 총 손실액이 됩니다. 반대로 판매가가 원가보다 높다면 이익이 발생한 것이고, 두 값의 차이가 총 이익액이 됩니다.
- 입력 − cp = 149, sp = 229
- 출력 − Profit 80
- 설명 − 판매가(sp) > 원가(cp)이므로 sp - cp = 80만큼의 이익이 발생합니다.
- 입력 − cp = 149, sp = 129
- 출력 − Loss 20
- 설명 − 원가(cp) > 판매가(sp)이므로 cp - sp = 20만큼의 손실이 발생합니다.
문제 해결 접근 방식
- 원가와 판매가를 입력받습니다.
- 원가 > 판매가인 경우 손실이므로 두 값의 차이를 계산하여 결과를 반환합니다.
- 판매가 > 원가인 경우 이익이므로 두 값의 차이를 계산하여 결과를 반환합니다.
- 판매가 == 원가인 경우 이익도 손실도 발생하지 않습니다.
알고리즘
시작
함수 int Profit(int cp, int sp)
단계 1→ (sp - cp) 값을 반환
함수 int Loss(int cp, int sp)
단계 1→ (cp - sp) 값을 반환
함수 int main()
단계 1→ cp = 5000, sp = 6700으로 선언 및 초기화
단계 2→ 만약 sp == cp라면,
"No profit nor Loss" 출력
단계 3→ 그렇지 않고 sp > cp라면,
Profit(이익) 출력
단계 4→ 그 외의 경우,
Loss(손실) 출력
종료예제 코드
#include <stdio.h>
// 이익을 반환하는 함수
int Profit(int cp, int sp){
return (sp - cp);
}
// 손실을 반환하는 함수
int Loss(int cp, int sp){
return (cp - sp);
}
int main(){
int cp = 5000, sp = 6700;
if (sp == cp)
printf("No profit nor Loss\n");
else if (sp > cp)
printf("%d Profit\n", Profit(cp, sp));
else
printf("%d Loss\n", Loss(cp, sp));
return 0;
}실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다 −
1700 Profit
이처럼 조건문(if-else)과 간단한 함수만 활용하면 원가와 판매가를 비교하여 손익 여부와 금액을 손쉽게 계산할 수 있습니다. 실무에서는 사용자로부터 직접 입력을 받아 처리하도록 scanf()를 추가하면 더욱 유용하게 확장할 수 있습니다.