请问我拿错了,为什么输出结果不对

#include
#include

int main() {
double a, x, y;
double e;
y = sqrt(a * x) + log(a + x) + pow(e, x);
scanf("%f %f", &a, &x);
printf("y=%.2f", y);
return 0;
}
提目;编程求 y=
ax

+ln(a+x)+e
x
。从键盘输入a和x,输出结果保留2位小数。

输入格式:
从键盘输入a和x的值,中间用空格分隔。

输出格式:
输出结果保留2位小数。

a,x,e都没有初始化就进行运算了。
y=那行放到输入后面。e的值提前赋值好

y = sqrt(a * x) + log(a + x) + pow(e, x);
scanf("%f %f", &a, &x);
这两行交换顺序啊,先输入再计算。
另外e是个常量,你要
#define e 2.718281828459045
double e;删掉