C 函数,它接受2个浮点数,并在使用指针的块之后返回它们的差值
我正在尝试编写一个函数,它接受两个通用浮点(设为'a'和'b'),并返回分配给变量的差值,因此a=a-b和b=b-a。 它应该打印带有2个小数位的值,并且必须在我退出块后工作。。。我的代码有什么问题C 函数,它接受2个浮点数,并在使用指针的块之后返回它们的差值,c,function,difference,C,Function,Difference,我正在尝试编写一个函数,它接受两个通用浮点(设为'a'和'b'),并返回分配给变量的差值,因此a=a-b和b=b-a。 它应该打印带有2个小数位的值,并且必须在我退出块后工作。。。我的代码有什么问题 #include <stdio.h> float diff_abs (float *a, float *b) { *a= *a-*b; *b= *b-*a; } int main(void) { float c, d; scanf("%f", &c);
#include <stdio.h>
float diff_abs (float *a, float *b) {
*a= *a-*b;
*b= *b-*a;
}
int main(void) {
float c, d;
scanf("%f", &c);
scanf("%f", &d);
printf("%.2f\n%.2f", diff_abs(&c, &d));
return 0;
}
#包括
浮动差速器abs(浮动*a,浮动*b){
*a=*a-*b;
*b=*b-*a;
}
内部主(空){
浮点数c,d;
scanf(“%f”、&c);
scanf(“%f”、&d);
printf(“%.2f\n%.2f”,不同的abs(&c,&d));
返回0;
}
非常感谢您的建议,谢谢。首先,您正在更改
a
值,然后将其用于下一次计算,因此请将函数简化为:
void diff_abs (float *a, float *b) {
*a= *a-*b;
*b = -*a
}
第二,由于不能在C
函数中返回多个变量,解决方案之一是使用void
返回函数,但在使用指针时更改变量(就像你不知怎么做的那样)
最后,由于函数返回void
,因此在printf
函数中不能将其用作浮动
,因此只需使用c
和d
像这样:
printf("%.2f\n%.2f",c,d);
当然,别忘了打电话:
diff_abs(&c, &d)
在尝试打印之前
在C中返回多个变量时,您可以参考这一点。问题是,第二次计算使用了新的a值。我建议做
*b=-*a因为数学是如何工作的。需要两个通用浮点数。…1)什么是通用浮点数?2) 指针!=标量变量。另一个问题是,diff_abs
函数应该返回一个float
值,但实际上它不返回任何值。