//calculate.c
#include<stdio.h>
void yunsuan();
int main()
{
printf("这个程序只支持加减乘除运算!支持运算优先级!\n\n");
yunsuan();
return 0;
}
void yunsuan()
{
double number[100];
char fuhao[100];
double total = 0;
double temp;
char ch;
int index1 = 0;
int index2 = 0;
int i;
while(scanf("%lf", &temp) == 0){
}
number[index1] = temp;
while(scanf("%c", &ch) == 0){}
while(i != 5 )
switch(ch){
case '+':
fuhao[index2++] = ch;
while(scanf("%lf", &temp) == 0){}
number[++index1] = temp;
while(scanf("%c", &ch) == 0){}
break;
case '-':
fuhao[index2++] = ch;
while(scanf("%lf", &temp) == 0){}
number[++index1] = temp;
while(scanf("%c", &ch) == 0){}
break;
case '*':
while(scanf("%lf", &temp) == 0){}
number[index1] *= temp;
while(scanf("%c", &ch) == 0){}
break;
case '/':
while(scanf("%lf", &temp) == 0){}
number[index1] /= temp;
while(scanf("%c", &ch) == 0){}
break;
case '=':
i = 5;
break;
default:
scanf("%c", &ch);
break;
}
total = number[0];
if(fuhao[0] != 0)
for(int i = 0; i <= index2; i++)
switch(fuhao[i]){
case '+':
total += number[++i];
break;
case '-':
total -= number[++i];
break;
default:
break;
}
printf("结果等于 %f.\n", total);
printf("\n");
printf("右上角退出!\n");
yunsuan();
}
#include<stdio.h>
void yunsuan();
int main()
{
printf("这个程序只支持加减乘除运算!支持运算优先级!\n\n");
yunsuan();
return 0;
}
void yunsuan()
{
double number[100];
char fuhao[100];
double total = 0;
double temp;
char ch;
int index1 = 0;
int index2 = 0;
int i;
while(scanf("%lf", &temp) == 0){
}
number[index1] = temp;
while(scanf("%c", &ch) == 0){}
while(i != 5 )
switch(ch){
case '+':
fuhao[index2++] = ch;
while(scanf("%lf", &temp) == 0){}
number[++index1] = temp;
while(scanf("%c", &ch) == 0){}
break;
case '-':
fuhao[index2++] = ch;
while(scanf("%lf", &temp) == 0){}
number[++index1] = temp;
while(scanf("%c", &ch) == 0){}
break;
case '*':
while(scanf("%lf", &temp) == 0){}
number[index1] *= temp;
while(scanf("%c", &ch) == 0){}
break;
case '/':
while(scanf("%lf", &temp) == 0){}
number[index1] /= temp;
while(scanf("%c", &ch) == 0){}
break;
case '=':
i = 5;
break;
default:
scanf("%c", &ch);
break;
}
total = number[0];
if(fuhao[0] != 0)
for(int i = 0; i <= index2; i++)
switch(fuhao[i]){
case '+':
total += number[++i];
break;
case '-':
total -= number[++i];
break;
default:
break;
}
printf("结果等于 %f.\n", total);
printf("\n");
printf("右上角退出!\n");
yunsuan();
}