嗨〜我只是C语言的初学者。我有一些类似的代码:
#include<stdio.h>
#include<math.h>
...
scanf("%lf %lf", &A[I], &B[I])
...
我需要从键盘输入e或e ^ 2之类的数据。我尝试使用“ e”或“ exp(1)”,但是它们没有起作用。有人可以给我一些建议吗?任何帮助表示赞赏!
答案 0 :(得分:4)
scanf()
的输入是字符串,C是通用的低级编程语言,不会将'e'解释为欧拉数2.7182818 ...或任何其他常见的数学常数。
此外,scanf()
不是表达式求值器,因此将不会对诸如e ^ 2之类的表达式或诸如exp()
之类的调用进行求值。
要执行预期的操作,将需要编写一个可识别特定常量和运算符的表达式求值器。这不是一项琐碎的任务。您可以改编的示例以及对过程的出色解释可以在http://www.arstdesign.com/articles/expression_evaluation.html中找到。有关表达式计算器实现的其他建议,请参见c expression Evaluator
答案 1 :(得分:1)
我也是编程的新手。 但是,我可能建议如下:
int main() {
float n;
scanf("%f",&n);
n = pow(2.718281,n);
printf("%f\n",n);
}
编辑 :我们不能在C中使用^作为幂运算符,而是使用pow()函数。
如果我写错了,请提出修改建议。