#include <string.h>
#include <stdio.h>
#define MAX 20
#define CSIZE 4
struct name
{
char First[MAX];
char Last[MAX];
};
struct student
{
float grade[3];
float average;
struct name names;
};
void eatline()
{
while(getchar()!='\n')
continue;
}
void init(struct student *a,int num);
void calcualteaverage(struct student *a,int num);
void show(struct student *a,int num);
void show_average_grade(struct student *a,int num);
int main(int argc, char **argv)
{
printf("hello world\n");
struct student a[CSIZE];
strcpy(a[0].names.First,"Adlin");
strcpy(a[0].names.Last,"Brsdf");
a[0].grade[0]=77.78;
a[0].grade[1]=78.54;
a[0].grade[2]=99.46;
a[1].grade[0]=85.64;
a[1].grade[1]=90.84;
a[1].grade[2]=80.65;
strcpy(a[1].names.First,"Ceate");
strcpy(a[1].names.Last,"Opeare");
a[2].grade[0]=68.64;
a[2].grade[1]=96.84;
a[2].grade[2]=78.65;
strcpy(a[2].names.First,"Xita");
strcpy(a[2].names.Last,"Singame");
init(a,4);
calcualteaverage(a,4);
show(a,4);
show_average_grade(a,4);
return 0;
}
void show_average_grade(struct student *a,int num)
{
int count=0;
float average1,average2,average3;
average1=0.0;
average2=0.0;
average3=0.0;
while(count<num)
{
average1+=a->grade[0];
average2+=a->grade[1];
average3+=a->grade[2];
count++;
a++;
}
printf(" average1:%.2f\n average2:%.2f\n average3:%.2f\n",average1/num,average2/num,average3/num);
}
void show(struct student *a,int num)
{
int count=0;
while(count<num)
{
puts(a->names.First);
puts(a->names.Last);
printf("1:%.2f 2:%.2f 3:%.2f\n",a->grade[0],a->grade[1],a->grade[2]);
printf("student average: %.2f\n",a->average);
a++;
count++;
}
}
void calcualteaverage(struct student *a,int num)
{
int count=0;
int i;
float sum;
while(count<num)
{
sum=0.0;
for(i=0;i<3;i++)
sum+=a->grade[i];
a->average=sum/3.0;
count++;
a++;
}
}
void init(struct student *a,int num)
{
int count=3;
a=a+3;
while(count<num)
{
printf("Please input the First name of student\n");
gets(a->names.First);
printf("Please input the Last name of student\n");
gets(a->names.Last);
puts("Please input the three grade!");
scanf("%f %f %f",&(a->grade[0]),&(a->grade[1]),&(a->grade[2]));
eatline();
count++;
a++;
if(count<num)
puts("add another one");
}
}