懂C语言的进来看看,帮我指点一下。分不多,只能表心意。

来源:百度知道 编辑:UC知道 时间:2024/05/16 00:52:16
#include <stdio.h>
#include "math.h"
double fun(double x){return (x*x-2*x+6);}
int main()
{
double x,y1,y2;
printf("Enter x:");
scanf("%1f",&x);
y1=fun(x+8);
y2=fun(sin(x));
printf("y1=%1f,y2=%1f\n",y1,y2);
return 0;
}
我输入10,竟然y1输出一个非常大的数,麻烦给位帮忙看下。我这没分了,希望大家义务帮忙下,谢谢了!

你好,刚才调试了,发现你的格式转化化出现了错误,
这里面的%1f改为%lf记住是小写"L"f!

#include <stdio.h>
#include "math.h"
double fun(double x){return (x*x-2*x+6);}
int main()
{
double x,y1,y2;
printf("Enter x:");
scanf("%lf", &x);
y1=fun(x+8);
y2=fun(sin(x));
printf("y1=%lf,y2=%lf\n",y1,y2);
return 0;
}

%后面是LF不是1(数字1)F

#include <stdio.h>
#include "math.h"
double fun(double x){return (x*x-2*x+6);}
int main()
{
double x,y1,y2;
printf("Enter x:");
scanf("%lf",&x); /*这里是lf(小写L), 不是1f(壹),注意双精度型是lf*/
y1=fun(x+8);
y2=fun(sin(x));
printf("y1=%lf,y2=%lf\n",y1,y2);
return 0;
}

scanf("%f",&x);

scanf("%f",&x);

没有赋初始值。