본문 바로가기
카테고리 없음

[예제] C언어로 주식 매수, 매도 평균값 구하기

by heydayz 2024. 8. 10.

C언어로 주식 매수, 매도 평균값 구하기 시뮬레이션

C언어로 주식 매수, 매도 평균값을 구하는 프로그램을 만들려고 합니다. 그렇다면 처음으로 준비해야 할 것은 주식거래를 위한 기초 데이터를 저장해야 하는데 이때는 배열을 이용해야 합니다. 그리고 주식을 매수와 매도할 경우 해당 값의 데이터 들의 합을 데이터의 개수로 나누는 구조도 계산하여 프로그램을 만들 예정입니다. 프로그램을 원활하게 하기 위해서 최대 거래횟수를 둘 예정이며 매수 평균값과 매도 평균값을 구하기 위해 숫자를 입력받을 것입니다. 나아가 해당 프로그램에서 주식종목 및 국내주식, 해외주식까지 고려해서 확장해 볼 생각입니다.

<stdio.h>: 표준 입출력 라이브러리

코드 구현 및 설명

#include <stdio.h>

#define MAX\_TRANSACTIONS 100 // 최대 거래 횟수

int main() {  
int numTransactions;  
double prices\[MAX\_TRANSACTIONS\];  
int isBuy\[MAX\_TRANSACTIONS\]; // 1: 매수, 0: 매도

```
printf("총 거래 횟수를 입력하세요: ");
scanf("%d", &numTransactions);

// 거래 데이터 입력
for (int i = 0; i < numTransactions; i++) {
    printf("%d번째 거래 (1: 매수, 0: 매도): ", i + 1);
    scanf("%d", &isBuy[i]);
    printf("%d번째 거래 가격: ", i + 1);
    scanf("%lf", &prices[i]);
}

// 매수 평균 가격 계산
double buySum = 0, buyCount = 0;
for (int i = 0; i < numTransactions; i++) {
    if (isBuy[i] == 1) {
        buySum += prices[i];
        buyCount++;
    }
}
double buyAverage = buyCount > 0 ? buySum / buyCount : 0;

// 매도 평균 가격 계산
double sellSum = 0, sellCount = 0;
for (int i = 0; i < numTransactions; i++) {
    if (isBuy[i] == 0) {
        sellSum += prices[i];
        sellCount++;
    }
}
double sellAverage = sellCount > 0 ? sellSum / sellCount : 0;

// 결과 출력
printf("매수 평균 가격: %.2lf\n", buyAverage);
printf("매도 평균 가격: %.2lf\n", sellAverage);

return 0;
```

}

#define MAX_TRANSACTIONS 100는 최대 거래 횟수를 의미합니다.
int isBuy[MAX_TRANSACTIONS]는 1일 경우 매수, 0일 경우 매도를 의미합니다.
double sellSum = 0, sellCount = 0을 넣고 매도 평균 가격을 계산합니다. 
double buySum = 0, buyCount = 0을 넣고 매수 평균 가격을 계산합니다.

코드 설명

배열 선언: 주식 거래 데이터를 저장하기 위한 배열 prices와 거래 종류를 저장하기 위한 배열 isBuy를 선언합니다.
데이터 입력: 사용자로부터 총 거래 횟수와 각 거래에 대한 가격, 매수/매도 정보를 입력받습니다.
매수 평균 계산: isBuy가 1인 경우(매수)에만 가격을 합산하고, 총 매수 횟수로 나누어 매수 평균을 계산합니다.
매도 평균 계산: isBuy가 0인 경우(매도)에만 가격을 합산하고, 총 매도 횟수로 나누어 매도 평균을 계산합니다.
결과 출력: 계산된 매수 평균과 매도 평균을 출력합니다.독창성 및 개선점
매수/매도 구분 배열: isBuy 배열을 도입하여 매수와 매도를 명확하게 구분하고, 코드의 가독성을 높였습니다.
조건문 활용: if 문을 사용하여 매수와 매도 데이터를 효과적으로 분리하고 처리했습니다.
0으로 나누기 방지: 매수 또는 매도 횟수가 0인 경우, 평균을 0으로 설정하여 오류를 방지했습니다.
코드 주석: 각 코드 라인에 대한 설명을 추가하여 코드의 이해를 돕고, 다른 예제와 차별화했습니다.
이 코드는 간단한 예시이며, 실제 주식 프로그램에서는 더욱 복잡한 연산과 다양한 기능이 필요할 수 있습니다. 예를 들어, 수수료, 세금, 배당금 등을 고려한 더 정확한 수익률 계산이 필요할 수 있습니다.