|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <stdio.h>
#define SIZE 4
#define SCORE 3
void cf(struct student *p);
void average(struct student *p);
void each(struct student *p);
void class_average(struct student *p);
struct name {
char first[20];
char last[20];
};
struct student {
struct name names;
char grade[20];
double average;
};
int main(void)
{
struct student students[SIZE] = {
{{"asdff","fasgad"},0,0,0,0},
{{"adfff","fasetd"},0,0,0,0},
{{"asvbf","fajkad"},0,0,0,0},
{{"asdff","fvbgad"},0,0,0,0},
};
cf(students);
average(students);
each(students);
class_average(students);
puts("Bye!");
return 0;
}
void cf(struct student *p)
{
int i,j;
for ( i = 0; i < SIZE; i++)
{
printf ("In put the %d scores of %s %s:",SCORE, (p+i)->names.first,
(p+i)->names.last);
for ( j = 0; j < SCORE; j++)
{
printf("Input the student fen :");
scanf("%lf", &((p+i)->grade[j]));
}
}
printf("Input finished!\n");
}
void average(struct student *p)
{
int i,j;
double total;
for (i = 0; i < SIZE; i++)
{
for( j = 0, total = 0; j < SCORE;j++)
total += (p+i)->grade[j];
(p+i)->average = total/SCORE;
}
printf("finished!\n");
}
void each(struct student *p)
{
int i,j;
double total;
for (i = 0; i < SIZE; i++)
{
printf("%s %s:\t", (p+i)->names.first, (p+i)->names.last);
for (j = 0, total; j < SCORE; j++)
printf("grade%d:%g\t",j+1, (p+i)->grade[j]);
printf("average:%g\n",(p+i)->average);
}
}
void class_average(struct student *p)
{
int i;
double total;
for (i = 0,total = 0; i < SIZE; i++)
total += (p+i)->average;
printf("class average:%g\n",total/SIZE);
}
|
|