四则变量表达式计算 c语言 输入一组单字符变量名及其对应数值存入线性表,再输入一个关于这些变量的四则运算表达式,代入其数值计算表达式的最终结果并显示。
设计要求:
1.单字符变量名与取值必须成对输入某结构体元素,再建立这些元素构成的线性表。
2.变量名与取值输入后立即显示变量信息,如“A=3,B=6,……”。
3.四则运算表达式必须以一个完整的字符串输入后,计算得出最终结果并显示。比如,运行阶段“(A+B)*3 回车”后,换行显示“=27”。
4.思考:若为四则运算增添函数计算功能,使其支持绝对值函数abs()、平方根函数sqr()、较大值函数max()、较小值函数min()等,表达式如A+abs(C+D)+max(E,F),应如何处理整个计算过程?
/*项目名称:简单计算器
项目拓展:除了加减乘除之外要求该程序能实现平方根、倒数、幂次方功能
*/
#include <stdio.h>
#include <math.h>
void main()
{
int a , b; //声明两个整形变量,作为计算器运算的基数
char op; //字符型变量,作为表现的运算符号
while (1) //while(1)可以进行无限循环,达到计算器运算的要求
//相对而言的,while (0)就代表不会运行其中的循环语句
{
printf("--------------------------\n");
printf("请输入两个操作数和运算符\n");
scanf_s("%c", &op); //输入使用字符类型%c
scanf_s("%d %d", &a, &b);
int s = sqrt(a); int p = pow(a, b); //对于一些不好运算的计算,可先算完
switch (op) //switch函数将输入的变变量代入以下不同情况来进行运算
{
case'+':
printf("%d+%d=%d\n", a, b, a + b); break;//加法运算
case'-':
printf("%d-%d=%d\n", a, b, a - b); break;//减法运算
case'*':
printf("%d*%d=%d\n", a, b, a * b); break;//乘法运算
case'/':
printf("%d/%d=%d\n", a, b, a / b); break;//除法运算
case'|':
printf("%d的平方根=%d\n", a, s); break; //平方根运算
case'$':
printf("%d/%d的倒数=%d\n", a, b, b / a); break;//倒数运算
case'^':
printf("%d的%d次幂=%d\n", a, b, p); break;//幂次方运算
default:printf("ERROR!!!!!\n"); break;//switch函数运行时,如果输入没有定义好的变量情况
//则输出所有其他情况的结果
}
getchar();
/*前面调用了scanf读取字符的函数,则需键入新值调用getchar(),因为scanf的调
用必须使用回车键才能执行,因此除了字符变量op还有回车键也在缓存区中
因此需要调用getchar函数将读入的字符带给程序*/
}
}
如果对你有帮助,可以点击我这个回答右上方的【采纳】按钮,给我个采纳吗,谢谢