⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xianxinghuigui.c

📁 用链表实现线性回归算法
💻 C
字号:
#include<stdio.h>


struct coor
{
    float a[2];
    struct coor *next;
};


void crea(struct coor *p)
{
    p=malloc(sizeof(struct coor));
    scanf("%f,%f",&(p->a[0]),&(p->a[1]));
    printf("%f,%f\n",p->a[0],p->a[1]);
    p = p->next;
}


float aver(struct coor *p,int j,int n)
{
    float sum = 0;
    while(p->next!=NULL)
    {
        sum = sum + p->a[j];
    }
    return (sum/n);
}


float aver2(float b[],int n)
{
    int i = 1;
    float sum = 0;
    for(i;i<=n;i++)
    {
        sum = sum + b[i];
    }
    return (sum/n);
}

void main()
{
    struct coor *head;
    struct coor *p;
    int n;
    int i,j,h;
    float aver_x;
    float aver_y;
    float c[100];
    float aver_c;
    float d[100];
    float aver_d;
    float a,b;
    head = malloc(sizeof(struct coor));
    p = head->next;
    i = 1;
    j = 1;
    h = 1;
    scanf("%d",&n);
    printf("%d\n",n);
    for(i;i<=n;i++)
    {
        crea(p);
    }
    p = head->next;
    while(p->next!=NULL)
    {
        c[j] = (p->a[0])*(p->a[0]);
        d[j] = (p->a[0])*(p->a[1]);
        p = p->next;
        j++;
    }
    for(h;h<=n;h++)
    {
        printf("%f\n",c[h]);
        printf("%f\n",d[h]);
    }
    i = 0;
    j = 1;
    aver_x = aver(head,i,n);
    aver_y = aver(head,j,n);
    aver_c = aver2(c,n);
    aver_d = aver2(d,n);
    b = (aver_d-aver_x*aver_y)/(aver_c-aver_x*aver_x);
    a = aver_y-(b*aver_x);
    printf("a=%f,b=%f",a,b);
    getch();
    getch();
    getch();
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -