제가 계산기를 만들어 볼려고 하는데요... 고수님들 잘못된것좀 찾아주세요..
딸기맛사탕
밑에 주황색으로 표시된 부분을 입력하기 전에는 잘 컴파일 잘됐었는데
주황부문을 추가하고 나니까 컴파일이 안돼욤...
뭐가 문제인지 조언을 구합니다.
그리고 어떻게 고쳐야 하나요..?
#includestdio.h
#includeconio.h
void main()
{
int select = 0;
float calc1, calc2 = 0;
printf(~~~~~~~내가 만드는 계산기~~~~~~~\n\n);
printf(원하는 연산의 번호를 고르세요.\n\n);
puts( 1. 덧셈\t 2. 뺄셈\n 3. 곱셈\t 4. 나눗셈\n);
scanf(%d, &select);
if( select == 1 )
puts(덧셈을 선택하였습니다.\n);
puts(첫번쨰 숫자를 입력하세요(실수범위 입력가능));
scanf(%f, &calc1);
puts(두번쨰 숫자를 입력하세요(실수범위 입력가능)\n);
scanf(%f, &calc2);
printf(%f + %f = %f\n, calc1, calc2, calc1 + calc2);
else if( select == 2 )
puts(뺼셈을 선택하였습니다.\n);
puts(첫번쨰 숫자를 입력하세요(실수범위 입력가능));
scanf(%f, &calc1);
puts(두번쨰 숫자를 입력하세요(실수범위 입력가능)\n);
scanf(%f, &calc2);
printf(%f - %f = %f\n, calc1, calc2, calc1 - calc2);
else if( select == 3 )
puts(곱셈을 선택하였습니다.\n);
puts(첫번쨰 숫자를 입력하세요(실수범위 입력가능));
scanf(%f, &calc1);
puts(두번쨰 숫자를 입력하세요(실수범위 입력가능)\n);
scanf(%f, &calc2);
printf(%f * %f = %f\n, calc1, calc2, calc1 * calc2);
else if( select == 4 )
puts(나눗셈을 선택하였습니다.\n);
puts(첫번쨰 숫자를 입력하세요(실수범위 입력가능));
scanf(%f, &calc1);
puts(두번쨰 숫자를 입력하세요(실수범위 입력가능)\n);
scanf(%f, &calc2);
printf(%f / %f = %f\n, calc1, calc2, calc1 / calc2);
else
puts(1~4 까지의 정수만 입력 해 주세요.);
getch();
return 0;
}
-
다스리
수다님은 먼가 다르시네요. 나눗셈에 저부분까지 말씀해주시고ㅎ
-
달달한캔디
calc1 / calc2를 하기 전에 반드시
calc2가 0인가를 먼저 검사하는 것이 좋습니다. -
연와인
잘 해결 되었습니다.
모두 감사 드립니다^^ -
귀1여운렩
그리고 메인이 void인데 리턴값이 없는게 당연하니까 리턴은 빼주시는게 더 나을듯 싶네요..
또 한마디 하자면 번호 집어넣는거는 switch가 더 가독성이 높구요..
float는 왠만하면 사용안하시는게 나을듯 싶네요 왜냐하면 double형에 비해 오차의 범위가 너무커요
요즘에는 컴터가 워낙 좋다보니까 실행속도의 차이보다는 정확도 차이가 우선시되기때문에...
카혼님께서도 이야기하셧듯이... ㅋ 괄호가 없네용 ㅋㅋ if는 1줄이면 괄호 없어도 되는데
2줄이 -
아인
if문에 { or } 괄호를 넣어 주셔야 되겠네요..그리고 scanf를 연속으로 사용하실때 fflush 로 버퍼를 비워주시는것이 좋습니다.
-
로운
어디쪽이 에러나는지는 모르겠지만
float형의 연산 때문인가; -
마음새
괄호를 집어넣어야될것같은데요...