函数题:jmu-c-计算表达式
输入一个表达式,计算表达式结果。如果表达式出现除0问题,输出divide error;如果表达式不合法,提示Invalid Expression。
本题数据保证:
- 输入的字符串不带空格。
- 输入数据全部是正整数。
- 不考虑优先级。表达式都是从左到右计算。如20+2*4 ,结果为160。
- 可以计算多步表达式,测试数据全部先乘除后加减的顺序。
### 函数接口定义:
c++
int ComputeExp(char *expstr, double *result);
expstr:表达式字符串。result:存放计算结果。函数返回值为表达式错误类型。
### 裁判测试程序样例:
c++
#include <stdio.h>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int ComputeExp(char *expstr, double *result);
int main()
{
char expstr[80];
double result;
int error;
scanf("%s",expstr);
error = ComputeExp(expstr, &result);//注意函数的返回值。
if ( error== -1)
printf("divide error");
else if (error == 0)
printf("Invalid Expression");
else if (error == 1)
printf("%.2f", result);
}
/* 请在这里填写答案 */
### 输入样例:
in
1/0
### 输出样例:
out
divide error
### 输入样例:
in
12+3@4
### 输出样例:
out
Invalid Expression
### 输入样例:
in
12+34-23
### 输出样例:
out
23.00
### 输入样例:
in
5/4+1
### 输出样例:
out
2.25
答案:若无答案欢迎评论
本题数据保证:
- 输入的字符串不带空格。
- 输入数据全部是正整数。
- 不考虑优先级。表达式都是从左到右计算。如20+2*4 ,结果为160。
- 可以计算多步表达式,测试数据全部先乘除后加减的顺序。
### 函数接口定义:
c++
int ComputeExp(char *expstr, double *result);
expstr:表达式字符串。result:存放计算结果。函数返回值为表达式错误类型。
### 裁判测试程序样例:
c++
#include <stdio.h>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int ComputeExp(char *expstr, double *result);
int main()
{
char expstr[80];
double result;
int error;
scanf("%s",expstr);
error = ComputeExp(expstr, &result);//注意函数的返回值。
if ( error== -1)
printf("divide error");
else if (error == 0)
printf("Invalid Expression");
else if (error == 1)
printf("%.2f", result);
}
/* 请在这里填写答案 */
### 输入样例:
in
1/0
### 输出样例:
out
divide error
### 输入样例:
in
12+3@4
### 输出样例:
out
Invalid Expression
### 输入样例:
in
12+34-23
### 输出样例:
out
23.00
### 输入样例:
in
5/4+1
### 输出样例:
out
2.25
答案:若无答案欢迎评论