中兴通讯子公司高新兴:c语言程序问题

来源:百度文库 编辑:高考问答 时间:2024/04/28 19:39:46
下面这段代码,哪里有问题,为什么输入的score[0]、score[1]、score[2],无法输出。
# include<stdio.h>
# define FORMAT "%d,%s,%f,%f,%f"
struct student
{int num;
char name[2];
float score[3];
}stu[5];

void print(struct student *p)
{printf(FORMAT,p->num,p->name,p->score[0],p->score[1],p->score[2]); }
void main()
{ struct student * p1;
int i;
for(i=0;i<1;i++)
{
printf("%d ",i);
scanf("%d,%s%f,%f,%f",&stu[i].num,stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);
printf("\n");
}
for(i=0;i<1;i++)
{printf("%d ",i);
p1=stu+i;
print(p1);
printf("\n");
}
getchar();
}

把scanf("%d,%s%f,%f,%f",&stu[i].num,stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);
改成
scanf("%d,%s",&stu[i].num,stu[i].name);
scanf("%f,%f,%f",&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);
注意,人名只能打2个英文字母