#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 inputarr(STUDENT s[], int n);
void outputarr(STUDENT s[], int n);
int main()
{
STUDENT b[5];
inputarr(b,5);
outputarr(b,5);
return 0;
}
void inputarr(STUDENT s[],int n)
{
int i;
for(i=0;i<n;i++)
{
scanf("%d",&s[i].num);
scanf("%s",s[i].name);
scanf("%s",s[i].sex);
scanf("%d",&s[i].birthday.year);
scanf("%d",&s[i].birthday.month);
scanf("%d",&s[i].birthday.day);
scanf("%f",&s[i].score);
}
}
void outputarr(STUDENT s[],int n)
{
int i;
for(i=0;i<n;i++)
{
printf("学号:%d 姓名:%s 性别:%s 出生日期:%d-%d-%d 成绩:%f\n",s[i].num,s[i].name,s[i].sex,s[i].birthday.year,s[i].birthday.month,s[i].birthday.day,s[i].score);
}
}
修改处见注释,供参考:
#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 inputarr(STUDENT s[], int n);
void outputarr(STUDENT s[], int n);
int main()
{
STUDENT b[5];
inputarr(b, 5);
outputarr(b, 5);
return 0;
}
void inputarr(STUDENT s[], int n)
{
int i;
for (i = 0; i < n; i++)
{
scanf("%d", &s[i].num);
getchar(); //修改
scanf("%s", s[i].name);
getchar(); //修改
scanf("%c", &s[i].sex); //scanf("%s", s[i].sex);修改
scanf("%d", &s[i].birthday.year);
scanf("%d", &s[i].birthday.month);
scanf("%d", &s[i].birthday.day);
scanf("%f", &s[i].score);
}
}
void outputarr(STUDENT s[], int n)
{
int i;
for (i = 0; i < n; i++)
{
//printf("学号:%d 姓名:%s 性别:%s 出生日期:%d-%d-%d 成绩:%f\n",
printf("学号:%d 姓名:%s 性别:%c 出生日期:%d-%d-%d 成绩:%f\n", //修改
s[i].num, s[i].name, s[i].sex, s[i].birthday.year, s[i].birthday.month, s[i].birthday.day, s[i].score);
}
}