哥哥帮帮忙!!!

来源:百度知道 编辑:UC知道 时间:2024/09/28 13:10:52
输入3个学生的姓名和3门成绩 用结构体数组存放,然后统计并输出三门的名称和平均分数.
struct cj
{ char name[10];
float foxbase;
float basic;
float c;
float pj;
};
main()
{ struct cj p[4];
int i;
for(i=0;i<3;i++)
{ scanf("%s",p[i].name);
scanf("%f,%f,%f",&p[i].foxbase,&p[i].basic,&p[i].c);
}
for(i=0;i<3;i++)
p[i].pj=(p[i].foxbase+p[i].basic+p[i].c)/3.0;
for(i=0;i<3;i++)
printf("name=%s, foxbase=%f , basic=%f, c=%f, pj=%f\n",p[i].name,p[i].foxbase,p[i].basic,p[i].c,p[i].pj);
getch();
}

为什么一输入数据时就出错 是不是哪错了 请各位大哥哥帮帮忙 看看 重要的是原因 !!
为什么 能解释下吗

scanf("%f,%f,%f",&p[i].foxbase,&p[i].basic,&p[i].c);
换成
scanf("%f%f%f",&p[i].foxbase,&p[i].basic,&p[i].c);
如果不改变,你输入的数中间要用","号隔开,改变后以空格隔开,原因这就是scanf的用法,前面的格式决定后面输入的格式