c언어 계산기 프로그램을 짜는데 num2의 초기화가 제대로 되지 않아요
글쓴이: rubylucy0717 / 작성시간: 수, 2020/08/12 - 1:43오후
초기 연산 이후에는 출력된 값에 +3 이런식으로 입력하면 추가 연산이 되도록 코드를 짰는데,
num2의 초기화가 제대로 되지않아서
3+1 (초기 연산)
값: 4
+3 (추가 연산)
값: 5
이런 식입니다.
#include<stdio.h>
int main(void){
float num1,num2,value;
char s=0;
int start=0;
while (1){
if (start == 0){
printf("수식을 입력하세요");
scanf("%f %c %f", &num1,&s,&num2);
switch(s){
case'+':
value = num1 + num2;
printf("답: %f", value);
num1 = value;
start=1;
break;
case'-':
value = num1 - num2;
printf("답: %f", value);
num1 = value;
start=1;
break;
case'*':
value = num1 * num2;
printf("답: %f", value);
num1 = value;
start=1;
break;
case'/':
value = num1 / num2;
printf("답: %f", value);
num1 = value;
start=1;
break;
default:
printf("계산할 수 없음");
break;
}
}
else {
if (start == 1){
printf("\n 계속 연산하려면 연산자부터 입력하세요");
}
scanf("%c %f", &s,&num2);
switch(s){
case'+':
value = num1 + num2;
printf("답: %f", value);
num1 = value;
start=2;
break;
case'-':
value = num1 - num2;
printf("답: %f", value);
num1 = value;
start=2;
break;
case'*':
value = num1 * num2;
printf("답: %f", value);
num1 = value;
start=2;
break;
case'/':
value = num1 / num2;
printf("답: %f", value);
num1 = value;
start=2;
break;
default:
printf("계산할 수 없음");
break;
}
}
}
return 0;
}깃헙에 질문은 처음 올려보네요. 부실한 설명이 있다면 수정하겠습니다.
Forums:


여긴 깃헙 아니고 kldp
kldp에서는 code 태그 안 쓰면 들여쓰기 다 날아갑니다.
소스코드에는 code 태그를 쓰셔요.
세벌 https://sebuls.blogspot.kr/
scanf 가 사용하는 buffer 값을 비워주지
scanf 가 사용하는 buffer 값을 비워주지 않으면 재사용시에 문제가 될 수 있습니다.
https://blog.naver.com/tipsware/221264776615
참고해 보세요.
댓글 달기