以下是修改后的代码:

#include #include using namespace std;

void E(); void T(); void F();

char exp[50]; //算术表达式区 int i = 0; //当前字符位置 char w; //当前字符

int main() { cout << "请输入表达式:"; cin >> exp; w = exp[i++]; //读取第一个字符 E(); if (w == '\0') //如果已到达字符串结尾 cout << "表达式合法!" << endl; else cout << "表达式不合法!" << endl; return 0; }

void E() { T(); while (w == '+' || w == '-') { w = exp[i++]; //读取下一个字符 T(); } }

void T() { F(); while (w == '*' || w == '/') { w = exp[i++]; //读取下一个字符 F(); } }

void F() { if (w == '(') { w = exp[i++]; //读取下一个字符 E(); if (w != ')') { cout << "表达式不合法!" << endl; } else w = exp[i++]; //读取下一个字符 } else if ((w >= 'a' && w <= 'p') || (w >= '0' && w <= '9')) { w = exp[i++]; //读取下一个字符 } else { cout << "表达式不合法!" << endl; } }

// 修改说明: // 1. 将 printf 改为 cout,将 scanf 改为 cin。 // 2. 在主函数中判断是否已到达字符串结尾,如果未到达则表达式不合法。 // 3. 将 char* argv[] 参数删除,因为未使用。 // 4. 在主函数中去掉 argc 参数,因为未使用。 // 5. 将 main 函数的返回类型改为 int。 // 6. 在头文件中添加 ,以使用字符串相关函数

用c++修改并完善下面代码:void E;void T;void F;char exp50; 算术表达式区int i=0; char w; 当前单词int mainint argc char argv	printfplease input you

原文地址: https://www.cveoy.top/t/topic/fiCw 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录