c언어 계산기 프로그램을 짜는데 num2의 초기화가 제대로 되지 않아요

rubylucy0717의 이미지

초기 연산 이후에는 출력된 값에 +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;
}

깃헙에 질문은 처음 올려보네요. 부실한 설명이 있다면 수정하겠습니다.

세벌의 이미지

kldp에서는 code 태그 안 쓰면 들여쓰기 다 날아갑니다.
소스코드에는 code 태그를 쓰셔요.

김정균의 이미지

scanf 가 사용하는 buffer 값을 비워주지 않으면 재사용시에 문제가 될 수 있습니다.

https://blog.naver.com/tipsware/221264776615

참고해 보세요.