메일함에 이름이 똑같아서 잘못 올렸어
#define _CRT_SECURE_NO_WARNINGS
#include <string.h>
#include <stdio.h>
#include <conio.h>
double cal_plus(double n1,char ch, double n2);//덧셈 뺄셈을 처리하는 함수
double cal_multy(double n1,char ch,double n2);//곱셈 나눗셈을 처리하는 함수
int calculation1(void);//사칙연산을 위한 함수
int calculation2();//중첩식 연산을 위한 함수
int main()
{
//1.덧셈 뺄셈 곱셈 나눗셈이 가능하게 만든다-끝
//1-2 두가지 계산이 가능하게 만든다.-끝
//1-3 잘못선택했을 경우 되돌아갈 수 있도록 만든다-끝
//2.다른 것도 할 수 있게 생각한다.-아직
int a;
do{
a=0;
printf(" ______________________________________________\n\n");
printf("|덧셈 뺄셈 곱셈 나눗셈이 가능한 계산기입니다. |\n");
printf("|계산 방식을 선택해 주세요. |\n");
printf("|사칙연산:1 중첩연산:2 |\n");
printf("|종료:3 |\n");
printf(" ______________________________________________\n");
scanf("%d",&a);
if(a==1)
calculation1();
else if(a==2)
calculation2();
else if(a==3)
break;
else
{
break;
}
}while(a==1||a==2);
printf("프로그램을 종료합니다\n");
}
int calculation1()
{
int i,time=0;
double input[5]={0,},multy=0,result=0;
char ch[5];
printf("\n");
printf("*덧셈 뺄셈 곱셈 나눗셈*을 복합적으로 할 수 있는 계산함수 입니다.\n");
printf("숫자는 최대 5개까지 입력이 가능합니다.\n");
printf("식은 /숫자와 부호를 한번씩/ 입력하고, 마지막 부호는 =을 입력해야 합니다.\n\n");
printf("ex)");
printf("_\n");
printf("입력|\n----\n 1+\n 2+\n 3=\n ㅡㅡ\n|출력|\n ㅡㅡ\n1+2+3=6\n");
printf(" _______________________________________________________________\n");
printf("|중간에 되돌아가시려면 숫자와 부호대신 알파벳'x x'를 입력하세요.|\n");
printf(" _______________________________________________________________\n");
1+2+3+4=10 가로형으로 만들어야함.
for(i=0;i<5;i++)
{
scanf("%lf %c",&input[i],&ch[i]);
if(input[i]=='x'||ch[i]=='x')
break;
time++;
if(ch[i]=='=')
break;
}
if(input[i]!='x'&&ch[i]!='x')
{
for(i=0;i<time;i++)
{
printf("%.3lf %c",input[i],ch[i]);
}
for(i=0;i<time;i++)
{
if(ch[i]=='*'||ch[i]=='/')
{
multy=cal_multy(input[i],ch[i],input[i+1]);
input[i]=0;
ch[i]='+';
if(ch[i-1]=='-')
multy=multy*(-1);
input[i+1]=multy;
}
}
result=input[0];
for(i=1;i<time;i++)
{
if(ch[i-1]=='+')
result+=input[i];
if(ch[i-1]=='-')
result-=input[i];
}
printf("%.3lf \n",result);
}
}
int calculation2()
{
double a=0,b=0,result=0,sum=0;
double input;
char ch1=0,ch2=0;
printf(" ____________________________________\n");
printf("|중첩식 연산을 지원하는 함수입니다. |\n");
printf("|결과 값에 추가로 연산이 가능합니다 |\n");
printf(" ____________________________________\n\n");
printf("ex)\n");
printf(" ---\n");
printf("|입력|\n");
printf(" ---\n");
printf("1+1\n\n");
printf("출력+추가입력: 2");
printf("-1\n");
printf("출력:1");
printf("\n종료하려면 숫자와 부호대신 알파벳x x를 입력하시오\n");
printf("입력\n");
scanf("%lf %c %lf",&a,&ch1,&b);
if(ch1=='+'||ch1=='-')
result=cal_plus(a,ch1,b);
if(ch1=='*'||ch1=='/')
result=cal_multy(a,ch1,b);
sum=result;
while(1)//오류 input값이 적용이 안됨
{
input=0;
printf("추가 입력:\n");
printf("%.2lf",sum);
scanf("%c %lf",&ch2,&input);//
if(ch2=='x'&& input=='x')
break;
if(ch2=='+')//
sum+=cal_plus(result,ch2,input);
else if(ch2=='-')
sum+=cal_plus(result,ch2,input);
else if(ch2=='*')
sum+=cal_multy(result,ch2,input);
else if(ch2=='/')
sum+=cal_multy(result,ch2,input);
result=sum;
}
}
double cal_multy(double n1,char ch,double n2)
{
if(ch=='*')
return n1*n2;
else if(ch=='/')
return n1/n2;
}
double cal_plus(double n1, char ch, double n2)
{
if(ch=='+')
return n1+n2;
else if(ch=='-')
return n1-n2;
}
도와달라는 내용은 같으니까 암튼 도와줭
--해결 완료--
답변 열람 시 별도의 정보이용료(1줄당 600원)가 부과됩니다.