编程设计一个简单的计算器程序,要求根据用户从键盘输入的表达式,操作数

编程设计一个简单的计算器程序,要求根据用户从键盘输入的表达式,操作数

  1. 首先,先写出各类计算的函数,参数从主函数中提取,返回计算后所得的值
    因计算器不只要求能计算加减乘除,所以所有函数类型都为double类型
    便于计算
double add(double a, double b) {
	return a + b;
}//加法函数
double subtract(double a, double b) {
	return a - b;
}//减法函数
double multiply(double a, double b) {
	return a * b;
}//乘法函数
double divide(double a, double b) {
	return a / b;
}//除法函数
double power(double a, double b) {
	return pow(a, b);
}//指数函数,传入的参数分别是底数和指数
double rooting(double a,double b) {
	return pow(a, 1 / b);
}//开根号,传入的参数为需要开根的数和根号指数

  1. 编写主函数,要求从中设置变量,并且能够读入数字和字符
int main() {
	double x, y;//设置用户输入的变量
	char s[2];//设置字符,控制函数调用
	scanf("%lf", &x);//读入基数
	for (; 1;) {
		scanf("%s%lf", &s[0], &y);//读入字符和被计算的数
		if (s[0] == '=')
			break;//当读入字符为'='时退出循环
		else if (s[0] == '+')
			x = add(x, y);
		else if (s[0] == '-')
			x = subtract(x, y);
		else if (s[0] == '*')
			x = multiply(x, y);
		else if (s[0] == '/')
			x = divide(x, y);
		else if (s[0] == 'p')
			x = power(x, y);
		else if (s[0] == 'r')
			x = rooting(x,y);
		else
			printf("输入有误");//读入字符非以上情况时,提示输入错误
		

	}
	printf("=%f", x);//打印最终结果
	return 0;

(做题过程中,char s时,scanf函数一直不能读入单个字符,所以定义了一个字符串,char s[2],用首字母作为调用函数的依据,如果哪个大佬知道原因,请指教一下,感激不尽)

你可能感兴趣的:(练习题,C语言)