#include
#define N 200
#define SCORES 3
#define shengri 3
#define NUMLEN 10
struct aa
{
char id;
char name[20];
int scores[SCORES];
float ave;
char flog;
}stu[NUMLEN];
struct bb
{
int year;
int month;
int day;
}birthday[shengri];
void input(struct aa stu[ ],struct bb birthday[ ])
{
int i;
printf("开始输入学生记录\n");
for(i=0;i
printf("输入第%d个学生记录的学号;\n",i+1);
scanf("%d",&stu[i].id);
printf("输入第%d个学生记录的姓名;\n",i+1);
scanf("%s",stu[i].name);
printf("输入第%d个学生记录的生日;\n",i+1);
scanf("%d%d%d",&birthday[i].year,&birthday[i].month,&birthday[i].day);
printf("输入第%d个学生记录的第一门功课成绩:",i+1);
scanf("%d",&stu[i].scores[0]);
printf("输入第%d个学生记录的第二门功课成绩:",i+1);
scanf("%d",&stu[i].scores[1]);
printf("输入第%d个学生记录的第三门功课成绩:",i+1);
scanf("%d",&stu[i].scores[2]);
}
}
void output(struct aa stu[ ],struct bb birthday[ ])
{
int i,l;
for( i=0;i
printf("id:%5d\n",stu[i].id);
printf("name:%5s\n",stu[i].name);
printf("birth:%5d%5d%5d\n",birthday[i].year,birthday[i].month,birthday[i].day);
for(l=0;l
printf("%4d",stu[i].scores[l]);
printf("\n\n");
}
}
}
main( )
{ input(stu, birthday);
output(stu, birthday);
}
说明:
0、程序已正常运行。
1、使用有名结构。两个无名结构在后期使用时分不清是哪一个。
2、子函数在主函数前可不加声明。
3、注意主子函数调用使用地址传递方式。
4、name的定义是字符串。
5、year\month\day是结构体成员,要分开使用。
6、输入生日时各成员之间要空格。
7、输入姓名时不加双引号。
祝学习进步!!!
你的答案 一塌糊涂
#include
#define N 200
#define SCORES 3
#define shengri 3
#define NUMLEN 1
struct STUDENT
{
char id;
char name[10];
int scores[SCORES];
float ave;
char flog;
}stu[NUMLEN];
struct BIRTHDAY
{
int year;
int month;
int day;
}birthday[shengri];
void input( STUDENT *stu,BIRTHDAY *birthday);
void output(STUDENT *stu,BIRTHDAY *birthday);
void input( STUDENT *stu,BIRTHDAY *birthday)
{
int i;
printf("开始输入学生记录\n");
for(i=0;i
printf("输入第%d个学生记录的学号;\n",i+1);
scanf("%d",&stu[i].id);
printf("输入第%d个学生记录的姓名;\n",i+1);
scanf("%s",stu[i].name);
printf("输入第%d个学生记录的生日;\n",i+1);
scanf("%d %d %d",&birthday[i].year,&birthday[i].month,&birthday[i].day);
printf("输入第%d个学生记录的第一门功课成绩:",i+1);
scanf("%d",&stu[i].scores[0]);
printf("输入第%d个学生记录的第二门功课成绩:",i+1);
scanf("%d",&stu[i].scores[1]);
printf("输入第%d个学生记录的第三门功课成绩:",i+1);
scanf("%d",&stu[i].scores[2]);
}
}
void output(STUDENT *stu,BIRTHDAY *birthday)
{
int i,l;
for( i=0;i
printf("id:%5d\n",stu[i].id);
printf("name:%5s\n",stu[i].name);
printf("birth:%5d%5d%5d\n",birthday[i].year,birthday[i].month,birthday[i].day);
for(l=0;l
printf("%4d",stu[i].scores[l]);
printf("\n\n");
}
}
}
main()
{
input(stu, birthday);
output(stu, birthday);
}
输入生日的时候 这样输入
1988 10 14
记得空格