gpt4 book ai didi

c - 从函数返回浮点值... (C)

转载 作者:行者123 更新时间:2023-11-30 21:02:04 24 4
gpt4 key购买 nike

这是我的代码:

#include <stdio.h>

float aveg(a,b){

float result;

result=(a+b)/2;

return result;
}

int main(void) {

float a,b,avg;


printf("first no: ");
scanf("%f",&a);
printf(" %f\n",a);
printf("second no: ");
scanf("%f",&b);
printf(" %f\n",b);

avg=(a+b)/2;
printf("average is: ");
printf("%.2f", avg);

avg=aveg(a,b);
printf("\n average from function is: ");
printf("%.2f",avg);
}

这是我的输出...

第一个号码:3 3.000000第二个号码:5 5.000000平均值为:4.00 函数平均值为:537133056.00

有人可以解释为什么我从 float 函数中得到如此不同的数字吗?我尝试声明该函数:

float avg(float a, float b);

但是编译器给我带来了错误......有什么想法吗?

最佳答案

最快的解决方法是添加一个点(稍后会解释):

result=(a+b)/2.;

ab 均声明为 int (默认情况下,因为您没有指定任何类型),因此您的 ( a+b) 结果是一个整数,然后除以另一个整数。

要使除法结果为浮点型,您应该确保至少有一个操作数是 float 类型,这就是为什么 2. 中的点(其中只是 2.0 的简短版本)。

真正的解决方法当然是正确声明函数参数的数据类型:

float aveg(float a, float b){

如果您的代码中没有其他语法错误,这将起作用。

关于c - 从函数返回浮点值... (C),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33202005/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com