C语言 从键盘输入一个简单的数学表达式,计算并显示该表达式的值 求算法和程序

发布时间:2021-03-07 23:19:13

C语言 从键盘输入一个简单的数学表达式,计算并显示该表达式的值 求算法和程序

网友回答

我理解的简单的数学表达式:纯数字+运算符+纯数字+(回车)
而且这里的运算符指 +,-,*,/ 四种之一,纯数字是指整数
如下:#include
#define NUMSIZE 10 //操作数长度
int ch_to_num(char a[]); //多位数字符到数值的转换
void main()
{char var1[NUMSIZE+1]; //存放第一个操作数字符串,最后一位存放结束符'\0'
char var2[NUMSIZE+1]; //存放第二个操作数字符串,最后一位存放结束符'\0'
char var_op; //存放操作数字符
bool flag1 = false; //用来标记是否已经输入第一个操作数字符串
bool flag2 = false; //用来标记是否已经输入第二个操作数字符串
bool flag_op = false; //用来标记是否已经输入操作符
int num1; //存放第一个操作数值
int num2; //存放第二个操作数值
double result0; //存放运算结果
char current_char;
int i = 0;
printf(请输入简单表达式!\n);
scanf(%c,¤t_char);
while (current_char >= '0' && current_char 0 )
{//第一个操作数合格
flag1 = true; //保存好第一个操作数,改变标记
var1[i] = '\0'; //加入结束符
}else{printf(输入格式有错!);
return;
}if (current_char =='+'||current_char =='-'||current_char =='*'||current_char =='/')
{//操作符为加减乘除,合格
var_op = current_char; //保存操作符
flag_op = true; //改变标记符
}else{printf(输入格式有错!);
return;
}scanf(%c,¤t_char);
i = 0;while (current_char >= '0' && current_char 0 )
{//第二个操作数合格
flag2 = true; //保存好第二个操作数,改变标记
var2[i] = '\0'; //加入结束符
}else{printf(输入格式有错!);
return;
}//计算:num1 = ch_to_num(var1);
num2 = ch_to_num(var2);
switch(var_op)
{case '+' :
result0 = num1 + num2;
printf(\n%d+%d=%f\n,num1,num2,result0);break;case '-' :result0 = num1 - num2;printf(\n%d-%d=%f\n,num1,num2,result0);break;case '*' :
以上问题属网友观点,不代表本站立场,仅供参考!