C语言:实现具有加法和乘法功能的计算器,输入5*7+2
时间: 2024-02-28 12:53:42 浏览: 71
C语言实现计算器功能.pdf
5星 · 资源好评率100%
好的,以下是一个 C 语言程序,实现了具有加法和乘法功能的计算器,可以处理如“5*7+2”的表达式:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
float parse_expression(char* expression);
int main()
{
char expression[100];
printf("请输入表达式:");
scanf("%s", expression);
float result = parse_expression(expression);
printf("%s = %.2f", expression, result);
return 0;
}
float parse_expression(char* expression)
{
char operator = '+';
float num1 = 0, num2 = 0, result = 0;
int i = 0;
while (i < strlen(expression))
{
char c = expression[i];
if (c >= '0' && c <= '9')
{
// 读取数字
float num = atof(&c);
// 处理多位数字
while (i + 1 < strlen(expression))
{
char next_c = expression[i + 1];
if (next_c >= '0' && next_c <= '9')
{
num = num * 10 + atof(&next_c);
i++;
}
else
{
break;
}
}
// 根据运算符进行运算
if (operator == '+')
{
result += num;
}
else if (operator == '*')
{
if (num1 == 0)
{
num1 = num;
}
else
{
num2 = num;
result = num1 * num2;
num1 = result;
}
}
}
else if (c == '+' || c == '*')
{
// 读取运算符
operator = c;
}
i++;
}
return result;
}
```
运行程序后,会提示用户输入表达式,并输出计算结果。程序使用一个名为 parse_expression 的函数来解析表达式,并进行加法和乘法运算。函数使用一个 while 循环来遍历表达式中的每个字符,并根据字符类型进行处理。函数使用 atof 函数将字符转换为数字。函数处理多位数字的方法是,如果下一个字符也是数字,则将其加到当前数字中。函数还使用变量 num1 和 num2 来存储乘法运算中的两个数字。
阅读全文