C++编程问题请大神赐教谢谢!

我下面这段代码是要输出c=px(n)的,函数px()里面return c,在c的表达式里面有字符x,但是在输出的时候会自动编译成120??请问怎么在表达式中显示字符 x?
double px(int n) {
double c;
if (n == 0)
c = 1;
if (n == 1)
c ='x';
if(n>1)
c = ((2 * n - 1)*'x'*px(n - 1) - (n - 1)*px(n - 2)) / n;
return c;

}

int main()
{
int n;
while (1) {
cout << "please enter n:" << endl;
cin >> n;
cout << "c=:" << px(n) << endl;
}
return 0;
}


阿波罗的战车
浏览 749回答 2
2回答

繁星淼淼

”c = ((2 * n - 1)*'x'*px(n - 1) - (n - 1)*px(n - 2)) / n; “ 这里面的第一个x是被转换成ascII码参与运算的,而且是对应十进制120。如果是想输出表达式的话,cout<<"c =" <<(”表达式“)<<"x"<<(”表达式“)<<<endl; 这样写应该可以(中文字符记得替换成你要写的表达式)。

Smart猫小萌

cout << "c=:" << px(n) << endl;这个语句换成cout << "c=:" << (char)px(n) << endl。完整代码如下:#include&nbsp;using namespace std;double px(int n) {double c;if (n == 0)c = 1;if (n == 1)c ='x';if(n>1)c = ((2 * n - 1)*'x'*px(n - 1) - (n - 1)*px(n - 2)) / n;return c;}int main(){int n;while (1) {cout << "please enter n:" << endl;cin >> n;cout << "c=:" << (char)px(n) << endl;}return 0;}
打开App,查看更多内容
随时随地看视频慕课网APP