|
안녕하세요 질문 있어서 글 올립니다
이제 막 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;
}
|