乔治爱啃脚趾 发表于 2023-4-28 12:48:00

求助

输入n个数,根据下式计算并输出y的值。
      x*x-sinx   x<-2
y= 2x+x          -2<=x<=2
   x+1+x*x   x>2
具体要求如下。
定义函数f(x),计算分段函数值y,函数类型是double。
定义main()函数,输入n的值,然后输入n个数,调用函数f(x)计算并输出y的值。

isdkz 发表于 2023-4-28 12:48:01

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

// 定义分段函数f(x)
double f(double x) {
    double y;

    if (x < -2) {
      y = x * x - sin(x);
    } else if (x >= -2 && x <= 2) {
      y = 2 * x + x;
    } else {
      y = x + 1 + x * x;
    }

    return y;
}

int main() {
    int n;
    double x;

    // 输入n的值
    printf("请输入n的值: ");
    scanf("%d", &n);

    // 输入n个数并计算y的值
    for (int i = 0; i < n; i++) {
      printf("请输入第%d个数: ", i + 1);
      scanf("%lf", &x);

      double y = f(x);
      printf("y的值: %.2lf\n", y);
    }

    return 0;
}


这是一个简单的C语言程序,它根据给定的分段函数计算并输出y的值。首先定义一个名为f的函数,它接受一个double类型的参数x,并根据分段函数计算并返回y的值。然后定义main函数,输入n的值,接着输入n个数,并调用f函数计算并输出y的值。

乔治爱啃脚趾 发表于 2023-4-28 12:56:36

isdkz 发表于 2023-4-28 12:49
这是一个简单的C语言程序,它根据给定的分段函数计算并输出y的值。首先定义一个名为f的函数,它接受一 ...

为啥一个是return 0,一个是return y啊,有什么区别吗

isdkz 发表于 2023-4-28 12:58:13

乔治爱啃脚趾 发表于 2023-4-28 12:56
为啥一个是return 0,一个是return y啊,有什么区别吗

`return`关键字用于返回函数的结果。不同的函数可能需要返回不同类型的结果,这就是为什么在这个例子中,我们有两个不同的`return`语句。

1. `return y;`:这个`return`语句出现在`f(double x)`函数中。此函数的目的是根据输入的`x`值计算`y`值,并将其返回给调用函数。因此,我们需要返回一个`double`类型的结果,即`y`。

2. `return 0;`:这个`return`语句出现在`main()`函数中。在C语言中,`main()`函数的返回值通常用于表示程序的退出状态。按照惯例,返回值`0`表示程序成功执行,而非零值表示程序执行过程中出现了错误。因此,这里我们返回`0`表示程序正常结束。

这两个`return`语句之间的区别在于它们所在的函数和返回的数据类型。`f(double x)`函数返回一个`double`类型的值,表示计算出的`y`值;而`main()`函数返回一个整数(通常是`0`或非零值),表示程序的退出状态。

乔治爱啃脚趾 发表于 2023-4-28 13:03:05

isdkz 发表于 2023-4-28 12:58
`return`关键字用于返回函数的结果。不同的函数可能需要返回不同类型的结果,这就是为什么在这个例子中, ...

嗷嗷,我明白了,谢谢你
页: [1]
查看完整版本: 求助