供参考:
#include<stdio.h>
#include<string.h>
typedef struct date{
int year;
int month;
int day;
}DATE;
typedef struct student{
int num;
char name[20];
char sex;
DATE birthday;
float score;
}STUDENT;
void input(STUDENT *s);
void output(STUDENT s);
int main()
{
STUDENT stu;
input (&stu);
output(stu);
return 0;
}
void input(STUDENT *s)
{
scanf("%d %s %c %d %d %d %f",&s->num,s->name,&s->sex,
&s->birthday.year,&s->birthday.month,&s->birthday.day,&s->score);
}
void output(STUDENT s)
{
printf("学号:%d\n姓名:%s\n性别:%c\n出生日期:%d年%d月%d日\n成绩:%.1f\n",
s.num,s.name,s.sex,s.birthday.year,s.birthday.month,s.birthday.day,s.score);
}
函数里调用:
s->num;
s->name;
s->birthday.year;
s->birthday.month;
s->birthday.day;
s->score;
供参考:
int main()
{
STUDENT stu[10];
intput(stu);
output(stu);
return 0;
}
void input(STUDENT *s)
{
int i=0;
printf("Input:num name sex year month day score\n");
while(i<10){
printf("Input student info of %d:\n",i+1);
scanf("%d %s %c %d %d %d %f",&s->num,s->name,&s->sex,
&s->birthday.year,&s->birthday.month,&s->birthday.day,&s->score);
i++;s++;
}
}
void output(STUDENT *s)
{
int i;
for(i=0;i<10;i++){
printf("%d %s %c %d %d %d %f\n",s->num,s->name,s->sex,
s->birthday.year,s->birthday.month,s->birthday.day,s->score);
s++;
}
}
输出函数按格式修改下:
void output(STUDENT *s)
{
int i;
for(i=0;i<10;i++){
printf("学号:%d\n姓名:%s\n性别:%c\n出生日期:%d年%d月%d日\n成绩:%f\n",
s->num,s->name,s->sex,s->birthday.year,s->birthday.month,
s->birthday.day,s->score);
s++;
}
}
完全按要求,修改如下:
int main()
{
STUDENT stu[10];
input(stu);
output(stu);
return 0;
}
void input(STUDENT *s)
{
int i=0;
while(i<10){
scanf("%d %s %c %d %d %d %f",&s->num,s->name,&s->sex,
&s->birthday.year,&s->birthday.month,&s->birthday.day,&s->score);
i++;s++;
}
}
void output(STUDENT *s)
{
int i;
for(i=0;i<10;i++){
printf("学号:%d\n姓名:%s\n性别:%c\n出生日期:%d年%d月%d日\n成绩:%.1f\n",
s->num,s->name,s->sex,s->birthday.year,s->birthday.month,
s->birthday.day,s->score);
s++;
}
}