c语言小代码,子函数问题
自己写的求绝对值子函数,有什么问题吗?为什么不工作#include<stdio.h>doublefabs(doublea){doublez;if(a<0){z=(-a);...
自己写的求绝对值子函数,有什么问题吗?为什么不工作
# include <stdio.h>
double fabs(double a)
{
double z;
if (a < 0)
{
z = (-a);
}
else
{
z = a;
}
return (z);
}
int main(void)
{
double b;
scanf("%lf", &b);
fabs(b);
printf("b = %lf\n\a", b);
return 0;
} 展开
# include <stdio.h>
double fabs(double a)
{
double z;
if (a < 0)
{
z = (-a);
}
else
{
z = a;
}
return (z);
}
int main(void)
{
double b;
scanf("%lf", &b);
fabs(b);
printf("b = %lf\n\a", b);
return 0;
} 展开
5个回答
展开全部
这个程序中,你定义的fabs中含有return返回一个值,因此,你在全局main函数中调用时,应当将返回值取出来放到一个变量里或者直接使用这个值,你直接写fabs(b)只是执行了函数,返回值并没有使用上去。
建议把那一行改为
b=fabs(b);
或者 double r=fabs(b); 后面的printf输出r的值也可以
更简单的方法就是可以去掉这行,直接把fabs(b)写到最后的输出里面,像这样
printf("|b|=%lf\n", fabs(b)); 也是可以的
建议把那一行改为
b=fabs(b);
或者 double r=fabs(b); 后面的printf输出r的值也可以
更简单的方法就是可以去掉这行,直接把fabs(b)写到最后的输出里面,像这样
printf("|b|=%lf\n", fabs(b)); 也是可以的
追问
i see。thanks
展开全部
将main函数改成这样:
int main(void)
{
double b;
scanf("%lf", &b);
b = fabs(b);
printf("b = %lf\n\a", b);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
主函数可以这样写
(1)
int main(void)
{
double b,z;
scanf("%lf", &b);
z=fabs(b);
printf("b = %lf\n\a", z);
return 0;
}
或者
(2)
int main(void)
{
double b;
scanf("%lf", &b);
printf("b = %lf\n\a", fabs(b));
return 0;
}
因为你的函数是值传递,必须把值赋值回来,不知道我这么说你是否明白了
(1)
int main(void)
{
double b,z;
scanf("%lf", &b);
z=fabs(b);
printf("b = %lf\n\a", z);
return 0;
}
或者
(2)
int main(void)
{
double b;
scanf("%lf", &b);
printf("b = %lf\n\a", fabs(b));
return 0;
}
因为你的函数是值传递,必须把值赋值回来,不知道我这么说你是否明白了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
b是不会被改变的。
fabs(b);
printf("b = %lf\n\a", b);
这两句话,合成printf("b = %lf\n\a",fabs(b));就可以了
fabs(b);
printf("b = %lf\n\a", b);
这两句话,合成printf("b = %lf\n\a",fabs(b));就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这里b一直没变,返回的z才是你想要的绝对值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询