以下是引用hh2010在2010-6-1 00:11:30的发言:
struct Student
{
unsigned int num;
char name[20];
char sex;
int age;
float score;
int sum;
float average;
};
#include
struct Student a[3];
int main(void)
{
int i;
printf("请输入学生的学号、姓名、性别、年龄、分数\n");
for(i=1;i<=3;i++)
scanf("%d%s%d%f",&a.num,&a.name,&a.sex,&a.score);
for(i=1;i<=3;i++)
printf("%3d%3s%3d%3f",a.num,a.name,a.sex,a.score);
return 0;
}
以上程序可以输入,但输不出结果,望高手指点一下,谢谢
比如:输入8 huang m 8 90
输出结果为: 8huang 00.000000 0 00.000000 0 00.000000
问题1:for(i=1;i<=3;i++),定义的结构体数组是3个元素,那下标应该是0,1,2。
问题2:scanf("%d%s%d%f",&a[i].num,&a[i].name,&a[i].sex,&a[i].score);这里不够细心,是不是少了年龄?
printf("%3d%3s%3d%3f",a[i].num,a[i].name,a[i].sex,a[i].score);这里%3f似乎不起作用,因为当实际数据超过域宽时,域宽不起作用,按数据实际宽度输出,建议%5.2f。
[
本帖最后由 qq423000 于 2010-6-1 08:21 编辑 ]