#include<stdio.h>
#include<Windows.h>
int main(void)
{
double a,c;
int b,d,e,f,g,h;
do
{
printf("1번째 숫자를 입력해주십시오.\n");
scanf("%lf",&a);
printf("2번째 숫자를 입력해주십시오.\n");
scanf("%lf",&c);
printf("연산기호를 선택해주십시오.\n");
printf("1.+ 2.- 3.* 4./\n");
scanf("%d",&b);
if(b==1) //덧셈
{
printf("%g+%g=%g\n",a,c,a+c);
printf("계산 끝!\n");
printf("\n\n\n\n\n\n\n\n\n\n더 하시겠습니까?\n1.네\n2.아니오\n");
scanf("%d",&d);
a=0;
b=0;
c=0;
}
else if(b==2) //뺄셈
{
printf("%g-%g=%g\n",a,c,a-c);
printf("계산 끝!\n");
printf("\n\n\n\n\n\n\n\n\n\n더 하시겠습니까?\n1.네\n2.아니오\n");
scanf("%d",&d);
a=0;
b=0;
c=0;
}
else if(b==3) //곱셈
{
printf("%g*%g=%g\n",a,c,a*c);
printf("계산 끝!\n");
printf("\n\n\n\n\n\n\n\n\n\n더 하시겠습니까?\n1.네\n2.아니오\n");
scanf("%d",&d);
a=0;
b=0;
c=0;
}
else if(b==4) //나눗셈
{
printf("%g/%g=%g\n",a,c,a/c);
printf("계산 끝!\n");
printf("\n\n\n\n\n\n\n\n\n\n더 하시겠습니까?\n1.네\n2.아니오\n");
scanf("%d",&d);
a=0;
b=0;
c=0;
}
else
{
printf("잘못된 선택을 하셨습니다.\n");
d=1;
}
}while(d==1);
printf("안녕히가십시오\n");
system("pause");
return 0;
}
계산기인데
ㅋㅋ. windows.h / [...] 잼.
ㄴ?? 왜 말을해줘야 알지 ...ㅠ
0으로 초기화 하는거 필요없는 짓. 그리고 저렇게 길게 치기 싫어서 난 a = b = c = 0; 처럼 하지.
system 함수 레퍼런스를 찾아보렴. 원래 헤더파일이 뭔지.
d 처럼 변수명 쓰지 말고 retry = true; 처럼 해서 조금 더 의미를 명확하게 하렴.
연산기호, 결과를 각각 다른 변수에 담았다면 printf 문 한 줄로 끝났겠지? 일일이 if 안에 넣을 필요 없이.
그렇게도 되는구나 a=b=c=0 오 좋은거감사
예를들어 char selected_operator; 라고 선언해서 기호를 담고 double result 해서 결과를 담은 후
숫자가 아닌 기호를 입력 받게 했다면 ( selected_operator = getchar(); )
printf("%d %c %d = %d", operand1, selected_operator, operand2, result);
이거 하나로 출력을 일반화 할 수 있을거야.
아 왠 d %lf
printf("%lf %c %lf = %lf", operand1, selected_operator, operand2, result);
더 하시겠습니다도 if else 밖으로 빼고.
위의 if else 들도 switch로 만드는게 깔끔.
오 정말고마워 한번 바꿔볼게
operator 는 c++ 예약어니 의미를 알고 써야 하는단어라. selected_operator 라고 한거야.
symbol 은 너무 추상적이고.
조금씩 어울리는 단어를 입혀서 코드가 술술 읽힐수 있게 연습하렴.
a, b, c 이런 네이밍은 안좋아.
일단은 그게 편해서 했는데 나중위해서 습관들여야겠네
좋은 코드는 중복이 없는 코드야 : ) 그걸 힌트 삼아서 간결하게 짜 보.
봐. 손가락에 힘이 없네.
printf로 값을 출력할 땐 float이나 double이나 모두 %f를 쓰는 것이 표준이죠. %lf를 쓸 경우엔 undefined behavior. 마치 fflush(stdin); 같은 암적인 존재랄까. 함수의 인자로 실수형을 건네면 float 값이든 double 값이든 모두 double 값으로 변환되어서 전달되기 때문에 float와 double을 구분하지 않고 모두 %f로 출력하는 것.
http://autogram.tk/이
중고차 어플리케이션 어떤가요?