#include <stdio.h>
#include <conio.h>
void calculation1();//사칙연산을 위한 함수
int cal_multy(double n1,char ch,double n2);//곱셈 나눗셈을 처리하는 함수
void calculation2();//중첩식 연산을 위한 함수
int main()
{
//1.덧셈 뺄셈 곱셈 나눗셈이 가능하게 만든다
//1-2 두가지 계산이 가능하게 만든다.
//1-3 잘못선택했을 경우 되돌아갈 수 있도록 만든다
//2.이미지 만든다.
//3.다른 것도 할 수 있게 생각한다.
int a;
while(1)
{
printf("덧셈 뺄셈 곱셈 나눗셈이 가능한 계산기입니다. 계산 방식을 선택해 주세요.\n");
printf("사칙연산:1 \n일반적인 계산기:2\n");
scanf("%d",&a);
if(a==1)
calculation1;
else if(a==2)
calculation2;
else
{
printf("잘못 입력했습니다. 알맞은 수를 입력해 주세요");
scanf("%d",&a);
if(a==1)
calculation1;
else if(a==2)
calculation2;
else
{
printf("잘못입력하셧습니다. 프로그램을 종료합니다.");
break;
}
}
}
}
void calclulation1()
{
int i;
double input[5]={0,},plus=0,multy=0,result=0;
char ch[5];
printf("덧셈 뺄셈 곱셈 나눗셈을 복합적으로 할 수 있는 계산함수 입니다\n");
printf("숫자는 최대 100개까지 입력이 가능합니다\n");
printf("식은 숫자와 부호를 한번씩 입력하고, 마지막 부호는 =을 입력해야 합니다.\n");
printf("ex)\n1+\n2+\n3=\n\n");
for(i=0;i<5;i++)
{
scanf("%lf %c",&input[i],&ch[i]);
if(ch[i]=='=')
break;
}
for(i=0;i<sizeof(input)/8;i++)
{
printf("%.3lf %c",input[i],ch[i]);
}
for(i=0;i<sizeof(input)/8;i++)//1*2*3+4/5
{
if (ch[i]=='*'||ch[i]=='/')
{
multy=cal_multy(input[i],ch[i],input[i+1]);
input[i]=0;
ch[i]='+';
input[i+1]=multy;//[1][*][2][*][3][+][4][-][5]->[0][+][multy][*][3] [+][4][/][5] [=]
} // [0][+][0] [+][multy][+][4][/][5] [=]
} // [0][+][0] [+][multy][+][0][+][4/5][=]
for(i=0;i<sizeof(input)/8;i++)
{
if(ch[i]=='+')
result+=input[i];
if(ch[i]=='-')
result-=input[i];
}
printf("= %.3lf",result);
}
int cal_multy(double n1,char ch,double n2)
{
if(ch=='*')
return n1*n2;
else if(ch=='/')
return n1/n2;
}
계산기 만드는중인데 우리가 일반적으로 가로로 여러개 써서 한번에 나오는거를 하고 싶은데 방법을 모르겠음. 차선책으로 calculation함수만들었는데 다시만들라네... 도와주라
댓글 0