求改正QAQ
  • 板块学术版
  • 楼主_xjx_
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/11/2 18:29
  • 上次更新2024/11/2 20:55:38
查看原帖
求改正QAQ
1403662
_xjx_楼主2024/11/2 18:29

不知道哪里错了:

#include <bits/stdc++.h>
using namespace std;
long double a[INT_MAX] = {0};
int i, j, k, len = 0, temp;
long double sum1 = 0, sum2 = 0, allsum = 0;
/*准备足够的number*/
char c[INT_MAX] = {'\0'};
/*准备足够的symbol*/
long double second(long double sum = 0){
	for(i = 0; i <= len; i++){
		if(c[i] == '+' || c[i] == '-'){
			continue;
		}else if(c[i] == '*'){
			sum = a[i] * a[i+1];
			continue;
		}else{
			cout << "有不合法的字符";
			return 0;
		}
	}
	return sum;
}
long double first(long double sum = 0){
	for(i = 0; i <= len; i++){
		if(c[i] == '+' || c[i] == '-'){
			continue;
		}else if(c[i] == '*'){
			sum = a[i] * a[i+1];
			continue;
		}else if(c[i] == '/'){
			sum = a[i] * 1.0 / a[i+1];
			continue;
		}else if(c[i] == '('){
			for(j = i; c[j] != ')'; j++){
				first();
				second();
			}
		}
	}
	return sum;
}

int main() {
	for(i = 0; c[i] != 'o'; i++){
		cin >> a[i] >> c[i];
		len++;
	}
	sum1 = first();
	sum2 = second();
	allsum = sum1 + sum2;
	cout << allsum;
}
2024/11/2 18:29
加载中...