프로그래밍

 3198, 1/160 회원가입  로그인  
   he891025
   [C언어] 제가 switch문으로만 계산기 짤려는데 .. 도움좀요 !!

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=3282 [복사]


#include <stdio.h>

char Calculator, r;

int main(void)
{
        int a, b;

        puts("'A'=add 'U'=Subtract 'M'=Multiply 'D'=Divide\n");

        scanf("%d %c %d",&a,&Calculator,&b);
        switch(Calculator)
        {
                case '+' : printf("%d + %d = %d\n",a,b,a+b);        
                break;

                case '-' : printf("%d - %d = %d\n",a,b,a-b);
                break;

                case '/' : printf("%d / %d = %.4lf\n",a,b,a/b);
                break;

                case '*' : printf("%d * %d = %d\n",a,b,a*b);
                break;

                default        : printf("()&&^%$(*(&^$&^%()&&^%$(*(&^$&^%");
        }
        
        printf("연산을 계속 하시겠습니까? (Y,N) \n");

        scanf("%c",&r);
        getchar();

        switch(r)         //문제는 여기예요 왜 아래 Y 를 눌러도 왜 default 값만 출력하나요?
              //제가 하고 싶은것은 연산 완료 되면 그 결과 값으로 또 더하거나
             //연산을 이어서 하고 싶은데 스위치 문 안에 스위치 문을 넣으려는데 안되여 ..........
        {
                case 'Y' : return printf("34343242");  
        
                case 'N' : printf("34343242");

                default        : printf("()&&^%$(*(&^$&^%()&&^%$(*(&^$&^% \n");
        }
        
        
        return 0;

}


-------------이 박스 부분은 수정 아직 안됨요.....-------------------------------------------
                switch(Calculator);
                {

                case '+' : return printf("%d + %d = %d\n",a,a+b);        
                        break;
                        
                case '-' : return printf("%d - %d = %d\n",a,a-b);
                        break;
                        
                case '/' : return printf("%d / %d = %.4lf\n",a,b);
                        break;
                        
                case '*' : return printf("%d * %d = %d\n",a,b);
                        break;
                }
----------------------------------------------이 박스 부분은 수정 아직 안됨요.....        

  Hit : 5490     Date : 2012/01/17 08:00



    
Z2ong2 case '+' : return printf("%d + %d = %d\n",a,a+b);
break;

여기서 return printf()는 뭐죠.. printf반환값을 리턴한단건가..
return을 빼세요 return하니 main함수가 끝나죠
그리고 printf("%d + %d = %d\n",a,a+b);여기서 인자가 이상하게 들어갔네요
printf("%d + %d = %d\n",a,b,a+b); 이렇게 바꾸시고
2012/01/18  
he891025 그부분은 수정 해야될부분이라 써놓았는데 문제는 위에 부분 주석처리 한쪽좀 ,... 2012/01/18  
reality Scanf를 gets로 바꿔보시고 안되면 다시... 2012/01/20