鱼C论坛

 找回密码
 立即注册
查看: 2274|回复: 5

请删帖。

[复制链接]
发表于 2021-7-20 08:30:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 xhtxhtxht 于 2023-1-25 15:31 编辑

请删帖。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-7-21 01:31:34 | 显示全部楼层
算完kmn之后打印的是abc的值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-21 08:50:29 | 显示全部楼层
学得够快 我还没到指针
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-21 20:35:34 | 显示全部楼层
谢谢
我后来发现了是y1,y2,y3分开乘才行。公式写错了。
解决了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-21 20:36:53 | 显示全部楼层
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char ** argv)
{
    //处理输入
    if(argc != 7) {
        printf("\
对于如\n\
      (x1,f(x1))\n\
      (x2,f(x2))\n\
      (x3,f(x3))\n\
的三个点,请输入 x1 f(x1) x2 f(x2) x3 f(x3) 作为程序的参数\n\
程序会给出穿过这三个点的二次函数解析式");
        return 1;
    }

    float x1, x2, x3, y1, y2, y3;
    x1 = atof(argv[1]);
    y1 = atof(argv[2]);
    x2 = atof(argv[3]);
    y2 = atof(argv[4]);
    x3 = atof(argv[5]);
    y3 = atof(argv[6]);
    printf("%.2f %.2f %.2f %.2f %.2f %.2f \n",x1, y1, x2, y2, x3, y3);
    //处理
    float k, m, n, a, b, c; 
    k = x1 * x1 - (x2 + x3) * x1 + x2 * x3;
    m = x2 * x2 - (x1 + x3) * x2 + x1 * x3;
    n = x3 * x3 - (x1 + x2) * x3 + x1 * x2;
    printf("k = %.2f;m %.2f;n %.2f\n",k, m, n);
    
    a = y1 / k + y2 / m + y3 / n;
    b = -(y1 * (x2 + x3) / k + y2 * (x1 + x3) / m + y3 * (x1 + x2) / n);
    c = y1 * x2 * x3 / k + x1 * y2 * x3 / m + x1 * x2 * y3 / n;
    //以上是根据拉格朗日插值公式得出的结论
    
    printf("此二次函数的解析式为:f(x) = %.2fx^2 + %.2fx + %.2f\n", a, b, c);
}
更改后
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-21 20:37:24 | 显示全部楼层
输入三个点坐标自动生成函数表达式
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-15 07:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表