gpt4 book ai didi

c - 这个程序一切都好吗?

转载 作者:行者123 更新时间:2023-11-30 18:48:41 25 4
gpt4 key购买 nike

问题是 -

Write a C function that calculates the value of weight z subject to the following conditons --

z = x^2 - 4*y if ( x > y)

z = x^2 + 4*y if ( x < y)

z = ( x + y )^3/4 if ( x = y )

Then write a C main program that reads the values for x and y and calls the developed function for calculating the value of weight z.

该程序是否完美适合所有可能的输入?这是 repl.it 版本 - https://repl.it/J0ev/0

#include<stdio.h>
#include<math.h>

float calc( float val1, float val2 ) ;
int main(void)
{
float x, y, z ;
printf("Enter x - ") ;
scanf("%f", &x ) ;
printf("Enter y - " ) ;
scanf("%f", &y ) ;
z = calc( x , y ) ;
printf("Value of z is - %.2f", z ) ;
return 0 ;
}
float calc ( float val1, float val2 )
{
float result ;
if (val1 > val2 )
result = pow( val1 , 2 ) - 4*val2 ;
else if ( val1 < val2 )
result = pow( val1 , 2 ) + 4*val2 ;
else if ( val1 == val2 )
result = pow( val1 + val2 , 3/4 ) ;
return result ;
}

我认为val1==val2的实现存在逻辑错误。

注意- 我是编程或编码的初学者。

最佳答案

您可以首先删除 else if ( val1 == val2 ) 仅用于 else ,因为这是唯一剩下的情况,并且您将避免浮点相等错误最坏的情况和最好的情况是稍微简化您的代码。

但真正的罪魁祸首是这一行:

result = pow( val1 + val2 , 3/4 ) ;
由于整数除法,

3/40。例如使用 3.0/4 或仅使用 0.75

关于c - 这个程序一切都好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45086618/

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