#include <stdio.h>
#include <stdlib.h>
#define N 30
typedef struct date{
int year;
int month;
int day;
}DATE;
typedef struct student{
long id;
char name[10];
char sex;
DATE birthday;
int score[4];
}STUDENT;
void iuputscore(STUDENT stu[],int n,int m);
void averscore(STUDENT stu[],float aver[],int n,int m);
void printscore(STUDENT stu[],float aver[],int n,int m);
int main(){
STUDENT stu[N];
float aver[N];
int n;
printf("how many students?");
scanf("%d",&n);
iuputscore(stu,n,4);
averscore(stu,aver,n,4);
printscore(stu,aver,n,4);
return 0;
}
void iuputscore(STUDENT stu[],int n,int m){
int i,j;
for(i=0;i<n;i++){
printf("input record %d:\n",i+1);
scanf("%ld",&stu[i].id);
scanf("%s",stu[i].name);
scanf(" %c",&stu[i].sex);
scanf("%d",&stu[i].birthday.year);
scanf("%d",&stu[i].birthday.month);
scanf("%d",&stu[i].birthday.day);
for(j=0;j<m;j++){
scanf("%d",&stu[i].score[j]);
}
}
}
void averscore(STUDENT stu[],float aver[],int n,int m){
int i,j,sum[N];
for(i=0;i<n;i++){
sum[i]=0;
for(j=0;j<m;j++){
sum[i]+=stu[i].score[j];
}
aver[i]=sum[i]/m;
}
}
void printscore(STUDENT stu[],float aver[],int n,int m){
int i,j;
for(i=0;i<n;i++){
printf("%10ld%8s%3c%6d/%02d/%02d",stu[i].id,
stu[i].name,
stu[i].sex,
stu[i].birthday.year,
stu[i].birthday.month,
stu[i].birthday.day);
for(j=0;j<m;j++){
printf("%4d",stu[i].score[j]);
}
printf("%6.1f\n",aver[i]);
}
}
C 书上结构体习题复盘
最新推荐文章于 2023-03-22 07:00:00 发布