C语言 从键盘输入一个简单的数学表达式,计算并显示该表达式的值 求算法和程序
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/15 09:47:45
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 '*' :
result0 = num1 * num2;
printf("\n%d*%d=%f\n",num1,num2,result0);
break;
case '/' :
result0 = (num1 + 0.0) / num2;
printf("\n%d/%d=%f\n",num1,num2,result0);
break;
default:
break;
}
}
int ch_to_num(char input[])
{
int sum = 0;
int i = 0;
char ch;
ch = input[i];
while ( ch != '\0')
{
sum = sum * 10 +ch - '0';
i++;
ch = input[i];
}
return sum;
}
而且这里的运算符指 +,-,*,/ 四种之一,纯数字是指整数
如下:
#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 '*' :
result0 = num1 * num2;
printf("\n%d*%d=%f\n",num1,num2,result0);
break;
case '/' :
result0 = (num1 + 0.0) / num2;
printf("\n%d/%d=%f\n",num1,num2,result0);
break;
default:
break;
}
}
int ch_to_num(char input[])
{
int sum = 0;
int i = 0;
char ch;
ch = input[i];
while ( ch != '\0')
{
sum = sum * 10 +ch - '0';
i++;
ch = input[i];
}
return sum;
}
C语言 从键盘输入一个简单的数学表达式,计算并显示该表达式的值 求算法和程序
从键盘输入一个表达式,判断它是否符合下面的语法规则 的c语言程序
C语言 编写程序,从键盘输入一个正数,计算该数的平方根.
编写程序,从键盘输入一个正整数,计算该数的各个位数字之和,并显示结果.
简单C语言习题?编写程序.计算下面表达式的值,并用指数形式显示结果.(3.31 * 10-8 * 2.01 * 10-7
C语言 编写程序 从键盘输入一元二次方程的三个参数(实数),计算并输出该方程的两个根
算术表达式求值算法?用C语言版 编写一个表达式求值演算的 算法程序 要求:使用栈,需要将算法的过程显示出来 ,输入一连串
用C语言编一程序,可以计算表达式的值,对非法表达式要给出提示,并要求重新输入正确表达式.
C语言一个简单的表达式求值
C语言程序问题:求表达式的值!
编写程序计算(m+n)!的值,m和n从键盘输入c语言答案
c语言加减乘除设计;大神改下要求写一个简单的计算器,输入一个数学表达式 程序输出结果.