急!寻找报错原因并修改

大家帮忙看一下谢谢!
实验目的:从键盘输入三角形的6个顶点坐标,实现三角形周长和面积的计算。要求:
(1)定义平面直角坐标系的点结构体类型,坐标值为整形;
(2)定义三角结构体类型,分量为3个顶点分量(点结构体类型),周长(浮点型),面积(浮点型);
(3)主函数中定义三角结构体类型数组包含3个三角形元素;
(4)定义函数,实现三角形结构体数组的输入,参数为指向三角结构体类型的指针变量;
(5)定义函数,实现三角形周长和面积的计算,参数为指向三角结构体类型的指针变量;
(6)定义函数,实现3个三角形中面积最大三角形的查找,并输出其坐标信息,参数为指向三角结构体类型的指针变量。

下面是我写的代码和报错,不知道怎么修改

img

img

img

img

给个代码可以吗,我在编译器里帮你改

#include <stdio.h>
#include <math.h>
typedef struct//坐标系的结构体申明 
{
    int x;
    int y;
}p_1;//把x,y的值赋给变量p1,p1={x,y},p1为全局变量 
typedef struct//三角形结构体类型申明 
{
    p_1 c1;//调用变量p1 
    p_1 c2;
    p_1 c3;
    float len;
    float area;
}p_2;//p2={c1,c2,c3,len,area}
void triangle_input(p_2 *p);
float distance(p_1 c1,p_1 c2);
void len_area(p_2 *p);
int max_area(p_2 *p);
int main() 
{
    p_2 t[3] = {{{0, 0}, {0, 1}, {1, 0}, 0, 0}, 
                {{0, 0}, {0, 2}, {2, 0}, 0, 0},
                {{0, 0}, {0, 3}, {3, 0}, 0, 0}};//定义三角结构体类型数组包含3个三角形元素
    int idx;
    triangle_input(t);
    len_area(t);
    idx=max_area(t);
    printf("面积最大的三角形坐标为;(%d,%d),(%d,%d),(%d,%d),周长为:%0.3f,面积为:%0.3f\n",
           t[idx].c1.x,t[idx].c1.y,t[idx].c2.x,t[idx].c2.y,t[idx].c3.x,t[idx].c3.y,t[idx].len,t[idx].area);
    return 0;
}
void triangle_input(p_2 *p)//实现三角形结构体数组的输入,参数为指向三角结构体类型的指针变量
{
    int i;
    printf("请从键盘输入三个三角形的顶点坐标:\n");
    for(i=0;i<3;i++)
    {
        scanf("%d%d%d%d%d%d",&((p+i)->c1.x),&((p+i)->c1.y),&((p+i)->c2.x),&((p+i)->c2.y),&((p+i)->c3.x),&((p+i)->c3.y));
        // 通过结构指针间接访问成员值访问的一般形式:(*结构指针变量). 成员名 或 结构指针变量 -> 成员名
    }
}
float distance(p_1 c1,p_1 c2)//定义求边长的公式 
{
    float d;
    d=sqrt((c2.x-c1.x)*(c2.x-c1.x)+(c2.y-c1.y)*(c2.y-c1.y));
    return d;
}
void len_area(p_2 *p)//定义求边长和面积的函数 
{
    int i;
    float d1,d2,d3,s;
    for(i=0;i<3;i++)//用循环来控制计算三个三角形的边长 
    {
        d1=distance(p->c1,p->c2);
        d2=distance(p->c1,p->c3);
        d3=distance(p->c2,p->c3);
        s=(d1+d2+d3)/2;//\海伦公式计算三角形的面积公式:s = (a + b + c) / 2,area = sqrt(s * (s - a) * (s - b) * (s - c))
        p->len=d1+d2+d3;
        p->area=sqrt(s*(s-d1)*(s-d2)*(s-d3));
        printf("三角形的周长为%0.3f,面积为%0.3f\n",p->len,p->area);
    }
}
int max_area(p_2 *p)//实现3个三角形中面积最大三角形的查找,并输出其坐标信息,参数为指向三角结构体类型的指针变量
{
    int idx=0;
    int i;
    for(i=1;i<3;i++);
    {
        if(((p+idx)->area) < ((p+i)->area))
        {
            idx=i;
        }
    }
    return idx; 
}



改了一些,你看看能不能编译

修改完善如下,改动处见注释“修改”,供参考:

#include <stdio.h>
#include <math.h>
typedef struct//坐标系的结构体申明
{
    int x;
    int y;
}p_1;//把x,y的值赋给变量p1,p1={x,y},p1为全局变量
typedef struct//三角形结构体类型申明
{
    p_1 c1;//调用变量p1
    p_1 c2;
    p_1 c3;
    float len;
    float area;
}p_2;//p2={c1,c2,c3,len,area}
void triangle_input(p_2 *p);
float distance(p_1 c1,p_1 c2);
void len_area(p_2 *p);
int max_area(p_2 *p); //void max_area(p_2 *p); 修改

int main()
{
    p_2 t[3] = {{{0, 0}, {0, 1}, {1, 0}, 0, 0},
                {{0, 0}, {0, 2}, {2, 0}, 0, 0},
                {{0, 0}, {0, 3}, {3, 0}, 0, 0}};//定义三角结构体类型数组包含3个三角形元素
    int idx;
    triangle_input(t);
    len_area(t);
    idx=max_area(t);
    printf("面积最大的三角形坐标为;(%d,%d),(%d,%d),(%d,%d),周长为:%0.3f,面积为:%0.3f\n",
           t[idx].c1.x,t[idx].c1.y,t[idx].c2.x,t[idx].c2.y,t[idx].c3.x,t[idx].c3.y,t[idx].len,t[idx].area); //修改
           //t[idx].c1.x,t[idx].c1.y,t[idx].c2.x,t[idx].c2.y,t[idx].c3.x,t[idx].c3.y,t[idx].len,t[idx].area,);
    return 0;
}
void triangle_input(p_2 *p)//实现三角形结构体数组的输入,参数为指向三角结构体类型的指针变量
{
    int i;
    printf("请从键盘输入三个三角形的顶点坐标:\n");
    for(i=0;i<3;i++)
    {
        scanf("%d%d%d%d%d%d",&((p+i)->c1.x),&((p+i)->c1.y),&((p+i)->c2.x),&((p+i)->c2.y),&((p+i)->c3.x),&((p+i)->c3.y));//修改
        //scanf("%d%d%d%d%d%d",&((p+i)->c1.x),&((p+i)->c1.y),&((p+i)->c2.x),&((p+i)->c2.y),&((p+i)->c3.x),&((p+i)->3.y);
        // 通过结构指针间接访问成员值访问的一般形式:(*结构指针变量). 成员名 或 结构指针变量 -> 成员名
    }
}
float distance(p_1 c1,p_1 c2)//定义求边长的公式
{
    float d;
    d=sqrt((c2.x-c1.x)*(c2.x-c1.x)+(c2.y-c1.y)*(c2.y-c1.y));
    return d;
}
void len_area(p_2 *p)//定义求边长和面积的函数 
{
    int i;
    float d1,d2,d3,s;
    for(i=0;i<3;p++,i++)//修改
    // for(i=0;i<3;i++)
    {
        d1=distance(p->c1,p->c2);
        d2=distance(p->c1,p->c3);
        d3=distance(p->c2,p->c3);
        s=(d1+d2+d3)/2;//\海伦公式计算三角形的面积公式:s = (a + b + c) / 2,area = sqrt(s * (s - a) * (s - b) * (s - c))
        p->len=d1+d2+d3;
        p->area=sqrt(s*(s-d1)*(s-d2)*(s-d3));
        printf("三角形的周长为%0.3f,面积为%0.3f\n",p->len,p->area);//修改
        //printf("三角形的周长为%0.3f,面积为%0.3f\n",p.len,p.area);
    }
}
int max_area(p_2 *p)//实现3个三角形中面积最大三角形的查找,并输出其坐标信息,参数为指向三角结构体类型的指针变量
{
    int idx=0;
    int i;
    for(i=1;i<3;i++) //; 多了分号';' 修改
    {
        if(((p+idx)->area) < ((p+i)->area))
        {
            idx=i;
        }
    }
    return idx; 
}