언어/c언어

Naver_지식인

파아랑새 2018. 9. 25. 22:15


https://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040101&docId=310710679

# include <stdio.h>

# include <string.h>

# include <stdlib.h>

# define SIZE 10

typedef struct Calc {

char opOne[SIZE];

char ope;

char opTwo[SIZE];

char resultv[SIZE*2];

int resultInt;

}Calc;

// ==========================================

//1.

void _init_(Calc* nParam);

//2.

void _valueInput_(Calc* nParam);

//3.

void _result_(Calc* nParam);

// ==========================================

int main(void) {

Calc myNode;

_init_(&myNode);

_valueInput_(&myNode);

_result_(&myNode);

printf("Result: %d\n", myNode.resultInt);

return 0;

} // end of main function 

// ==========================================

void _init_(Calc* nParam) {

nParam->ope = '\0';

strcpy(nParam->opOne, "\0");   // 숫자 _01

strcpy(nParam->opTwo, "\0");   // 숫자 _02

strcpy(nParam->resultv, "\0"); // 연산자 

nParam->resultInt = 0x0;

} // end of _init_ function

// ==========================================

void _valueInput_(Calc* nParam) {

printf("OP#1: ");

gets(nParam->opOne);

printf("OPER: ");

scanf("%c", &nParam->ope);

rewind(stdin); // 버퍼 비우기 

printf("OP#2: ");

gets(nParam->opTwo);

}

// ==========================================

void _result_(Calc* nParam) {

switch (nParam->ope) {

case '@':

strcpy(nParam->resultv, nParam->opOne);

strcat(nParam->resultv, nParam->opTwo);

nParam->resultInt = atoi(nParam->resultv);

nParam->resultInt += 1;

break;

case '#':

strcpy(nParam->resultv, nParam->opTwo);

strcat(nParam->resultv, nParam->opOne);

nParam->resultInt = atoi(nParam->resultv);

nParam->resultInt -= 1;

break;

default:

printf("error ... !!!\n");

exit(1);

}

}