帮忙看看这题哪里错了?1
发布网友
发布时间:2023-09-29 00:55
我来回答
共6个回答
热心网友
时间:2024-11-23 05:42
fun是自定义的函数,你这不是把它当变量使用了么,这就错了,你把fun函数里边的fun改一下;还有你那个fun函数是需要一个float类型的参数,所以整段代码给你改一下吧;
#include<stdio.h>
float fun(float x);
void main()
{
float x;
scanf("%f",&x);
printf("%.5f\n",fun(x));
}
fun(float x)
{
float f;
if(0.0<=x<0.1)
f=0.39894*(x-0.1)/(0.0-0.1)+0.39695*(x-0.0)/(0.1-0.0);
else if(x<0.195)
f=0.39695*(x-0.195)/(0.1-0.195)+0.39142*(x-0.1)/(0.195-0.1);
else if(x<0.3)
f=0.39142*(x-0.3)/(0.195-0.3)+0.38138*(x-0.195)/(0.3-0.195);
else if(x<0.401)
f=0.38138*(x-0.401)/(0.3-0.401)+0.36812*(x-0.3)/(0.401-0.3);
else if(x<=0.5)
f=0.36812*(x-0.5)/(0.401-0.5)+0.35206*(x-0.401)/(0.5-0.401);
return f;
}
你这样运行一下就可以了
热心网友
时间:2024-11-23 05:42
我也觉得你错的地方太多了~~稍微给你改了一下
#include<stdio.h>
float fun(float x);
void main()
{
float x;
scanf("%f",&x);
printf("%.5f\n",fun(x));
}
float fun(float x)
{
float y;
if(0.0<=x<0.1)
y=0.39894*(x-0.1)/(0.0-0.1)+0.39695*(x-0.0)/(0.1-0.0);
else if(x<0.195)
y=0.39695*(x-0.195)/(0.1-0.195)+0.39142*(x-0.1)/(0.195-0.1);
else if(x<0.3)
y=0.39142*(x-0.3)/(0.195-0.3)+0.38138*(x-0.195)/(0.3-0.195);
else if(x<0.401)
y=0.38138*(x-0.401)/(0.3-0.401)+0.36812*(x-0.3)/(0.401-0.3);
else if(x<=0.5)
y=0.36812*(x-0.5)/(0.401-0.5)+0.35206*(x-0.401)/(0.5-0.401);
return y
;
}
热心网友
时间:2024-11-23 05:43
printf("%.5f",fun);
如果还不会调用函数,可以先写一些简单的代码练习。初学没必要写太复杂。
如果想打印函数地址,用%d格式就可以了。
我自以为是地认为你是要printf("%.5f",fun(0.1));这样的语句。
热心网友
时间:2024-11-23 05:43
#include<stdio.h>
float fun(float x);
void main()
{
float x=0;
SCANF("%f",&x);
printf("%.5f\n",fun(x));
}
float fun(float x)
{
if(0.0<=x && 0.1>x)
{
return 0.39894*(x-0.1)/(0.0-0.1)+0.39695*(x-0.0)/(0.1-0.0);
}elseif(0.195>x){
return 0.39695*(x-0.195)/(0.1-0.195)+0.39142*(x-0.1)/(0.195-0.1);
}elseif(0.3>x){
return 0.39142*(x-0.3)/(0.195-0.3)+0.38138*(x-0.195)/(0.3-0.195);
}elseif(0.401>x){
return 0.38138*(x-0.401)/(0.3-0.401)+0.36812*(x-0.3)/(0.401-0.3);
}esleif(0.5>x){
return 0.36812*(x-0.5)/(0.401-0.5)+0.35206*(x-0.401)/(0.5-0.401);
}
热心网友
时间:2024-11-23 05:44
函数名和函数内变量名一样,会造成函数的自我调用,你这样用会乱成一团麻,函数如果用scanf扫入变量,则不需要有输入,应该是float fun(void), 应在函数内定义一个变量,比如float i,然后i = .....。 最后return i; 主函数调用时应为 fun(),就不一一说明了,贴上正确的,已经编译通过,记得给分。
#include<stdio.h>
float fun(void);
void main()
{
printf("%.5f\n",fun());
}
float fun(void)
{
float i;
float x;
scanf("%f",&x);
if(0.0<=x<0.1)
i=0.39894*(x-0.1)/(0.0-0.1)+0.39695*(x-0.0)/(0.1-0.0);
else if(x<0.195)
i=0.39695*(x-0.195)/(0.1-0.195)+0.39142*(x-0.1)/(0.195-0.1);
else if(x<0.3)
i=0.39142*(x-0.3)/(0.195-0.3)+0.38138*(x-0.195)/(0.3-0.195);
else if(x<0.401)
i=0.38138*(x-0.401)/(0.3-0.401)+0.36812*(x-0.3)/(0.401-0.3);
else if(x<=0.5)
i=0.36812*(x-0.5)/(0.401-0.5)+0.35206*(x-0.401)/(0.5-0.401);
return i;
}
热心网友
时间:2024-11-23 05:45
建议多看看书,打好基础...