📄 14-5.txt
字号:
#include <stdio.h>
#include <string.h>
#define LEN 14
#define CSIZE 4
#define SCORES 3
struct name {
char first[LEN];
char last[LEN];
};
struct student {
struct name person;
float grade[SCORES];
float ave;
};
void get_grade(struct student ar[], int dem);
void find_aves(struct student ar[], int dem);
void show_class(const struct student ar[], int dem);
void show_ave(const struct student ar[], int dem);
int main(void)
{
struct student class[CSIZE] ={
{ "Flip", "Snide"},
{ "Clare", "Voyans"},
{ "Bingo", "Higgs"},
{ "Fawn", "Hunter"}
};
get_grade(class, CSIZE);
find_aves(class, CSIZE);
show_class(class, CSIZE);
show_ave(class, CSIZE);
return 0;
}
void get_grade(struct student ar[], int dem)
{
int i,j;
for (i = 0; i < dem; i++)
{
printf ("Please enter %d grade for %s %s:\n", SCORES,
ar[i].person.first, ar[i].person.last);
for (j = 0; j < SCORES; j++)
{
while (scanf("%f", &ar[i].grade[j]) != 1)
{
scanf("%*s");
puts("Please use numeric input.");
}
}
}
}
void find_aves(struct student ar[], int dem)
{
int i, j;
float sum;
for (i = 0; i < dem; i++)
{
for (sum = 0, j = 0; j < SCORES; j++)
sum += ar[i].grade[j];
ar[i].ave = sum / SCORES;
}
}
void show_class(const struct student ar[], int dem)
{
int i, j;
char wholename[2*LEN];
for (i = 0; i < dem; i++)
{
strcpy(wholename, ar[i].person.first);
strcat(wholename, " ");
strcat(wholename, ar[i].person.last);
printf("%27s: ", wholename);
for (j = 0; j < SCORES; j++)
printf("%6.1f ", ar[i].grade[j]);
printf(" Average = %5.2f\n", ar[i].ave);
}
}
void show_ave (const struct student ar[], int dem)
{
int i, j;
float total;
printf("\n%27s: ", "QUIZ AVERAGES");
for (j = 0; j < SCORES; j++)
{
for (total = 0, i = 0; i < dem; i++)
total += ar[i].grade[j];
printf("%6.2f ", total / dem);
}
putchar('\n');
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -