C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[64377] 계산기 소스를 만들다가 질문 드립니다.
서덕만 [] 1151 읽음    2011-05-18 14:00
안녕하세요 질문 있어서 글 올립니다

이제 막 Visual C++을 이용해서 프로그램을 좀 만들어보려고 하는 사람인데요

계산기를 만들고 있는데 아래와 같은 소스를 만들었습니다.

똑같은 코드가 자꾸 반복 되는데 For문을 이용해서 이걸 반복 할 수 있나요?

아래 보시면 연산자 기호를 입력을 받는데 소스를 한번만 써도 반복해서 입력 받을 수 있는 방법이 있을까요?

조언 좀 부탁 드리겠습니다.


#include "stdafx.h"


int main(int)

{

    float a[100] = {0};
    char b, c, d, e, f, g;                    

    printf("수식을 입력하세요 : ");
    scanf("%f%c%f", &a[0], &b, &a[1]);
       
    switch ( b )
    {
    case '+':
        a[2] = a[0] + a[1];
        break;
    case '-':
        a[2] = a[0] - a[1];
        break;
    case '*':
        a[2] = a[0] * a[1];
        break;
    case '/':
        a[2] = a[0] / a[1];
        break;
    }

    scanf("%c", &c);

    switch ( c )
    {
        case '=':
        printf("%f", a[2]);
        case '+':
        scanf("%f", &a[3]);
        a[4] = a[2] + a[3];
        break;
        case '-':
        scanf("%f", &a[3]);
        a[4] = a[2] - a[3];
        break;
        case '*':
        scanf("%f", &a[3]);
        a[4] = a[2] * a[3];
        break;
        case '/':
        scanf("%f", &a[3]);
        a[4] = a[2] / a[3];
        break;
    }

    scanf("%c", &d);

    switch ( d )
    {
        case '=':
        printf("%f", a[4]);
        case '+':
        scanf("%f", &a[5]);
        a[6] = a[4] + a[5];
        break;
        case '-':
        scanf("%f", &a[5]);
        a[6] = a[4] - a[5];
        break;
        case '*':
        scanf("%f", &a[5]);
        a[6] = a[4] * a[5];
        break;
        case '/':
        scanf("%f", &a[5]);
        a[6] = a[4] / a[5];
        break;
    }

    scanf("%c", &e);

    switch ( e )
    {
        case '=':
        printf("%f", a[6]);
        case '+':
        scanf("%f", &a[7]);
        a[8] = a[6] + a[7];
        break;
        case '-':
        scanf("%f", &a[7]);
        a[8] = a[6] - a[7];
        break;
        case '*':
        scanf("%f", &a[7]);
        a[8] = a[6] * a[7];
        break;
        case '/':
        scanf("%f", &a[7]);
        a[8] = a[6] / a[7];
        break;
    }

    scanf("%c", &f);

    switch ( f )
    {
        case '=':
        printf("%f", a[8]);
        case '+':
        scanf("%f", &a[9]);
        a[10] = a[8] + a[9];
        break;
        case '-':
        scanf("%f", &a[9]);
        a[10] = a[8] - a[9];
        break;
        case '*':
        scanf("%f", &a[9]);
        a[10] = a[8] * a[9];
        break;
        case '/':
        scanf("%f", &a[9]);
        a[10] = a[8] / a[9];
        break;
    }   
   
    scanf("%c", &g);

    switch ( g )
    {
        case '=':
        printf("%f", a[10]);
        return 0;
        case '+':
        scanf("%f", &a[11]);
        a[12] = a[10] + a[11];
        break;
        case '-':
        scanf("%f", &a[11]);
        a[12] = a[10] - a[11];
        break;
        case '*':
        scanf("%f", &a[11]);
        a[12] = a[10] * a[11];
        break;
        case '/':
        scanf("%f", &a[11]);
        a[12] = a[10] / a[11];
        break;
    }

    printf("%f\n", a[12]);

    return 0;

}

+ -

관련 글 리스트
64377 계산기 소스를 만들다가 질문 드립니다. 서덕만 1151 2011/05/18
64380     Re:계산기 소스를 만들다가 질문 드립니다. 송신영 1272 2011/05/18
64383         Re:Re:계산기 소스를 만들다가 질문 드립니다. 서덕만 1114 2011/05/19
64393             Re:Re:Re:계산기 소스를 만들다가 질문 드립니다. 송신영 922 2011/05/20
64395                 Re:Re:Re:Re:계산기 소스를 만들다가 질문 드립니다. 서덕만 1039 2011/05/20
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.