C语言sacnf函数的一个问题

来源:百度知道 编辑:UC知道 时间:2024/05/08 22:41:08
struct student /*定义一个学生信息结构类型 包括学号,姓名,3门课成绩*/
{
long num;
char name[10];
float score[3];
};
main()
{
void input(struct student *p,int n);
struct student stu[5];
input(stu,5);
}
void input(struct student *p,int n)
{
int i;
for(i=0;i<n;i++)
scanf("%ld%s%f%f%f",&(p+i)->num,(p+i)->name,
&(p+i)->score[0],&(p+i)->score[1],&(p+i)->score[2]);
}

以上函数实现输入5个学生的信息(学号,姓名,3门课的成绩)
我输入 100101 mingT 95.5 96 87
然后回车 它总是提示
scanf: floating point formats not linked
Abnormal porgram termination
程序无法往下执行
请问上面函数中的scanf函数有什么问题吗?
3楼
->运算级别最高 当然高于&
所以不用加括号吧 我加上括号试了下结果一样的

我在VC里运行没问题,可能你用的是TC,看下这篇文章吧.
http://hi.baidu.com/eocodes/blog/item/9b25972308e69845ac34de4b.html

&(p+i)->score[0],&(p+i)->score[1],&(p+i)->score[2]出错了吧?

&(p+i)->num,(p+i)->name,
&(p+i)->score[0],&(p+i)->score[1],&(p+i)->score[2]);

==>

&((p+i)->num),(p+i)->name,
&((p+i)->score[0]),&((p+i)->score[1]),&((p+i)->score[2]));