#include<stdio.h>
#include<string.h>
#define NAMEL 21
#define CSIZE 4
char* s_gets(char* st, int n);
struct name {
char fname[NAMEL];
char lname[NAMEL];
};
struct student {
struct name member;
float grade[3];
float average;
};
int main(void)
{
float total=0;
int count = 0;
struct student class[CSIZE];
while (count< 4)
{
printf("输入第%d个学生的姓",count+1);
s_gets(class[count].member.lname, NAMEL);
printf("输入第%d个学生的名", count + 1);
s_gets(class[count].member.fname, NAMEL);
printf("输入第%d个学生的三门分数,以空格隔开", count + 1);
scanf_s("%f%f%f", &class[count].grade[0], &class[count].grade[1],
&class[count].grade[2]);
while (getchar() != '\n')
continue;
class[count].average = (class[count].grade[0] + class[count].grade[1] +
class[count].grade[2]) / 3.0;
total += class[count].grade[0] + class[count].grade[1] +
class[count].grade[2];
count++;
}
total /= (3*4.0);
count = 0;
while (count < 4)
{
printf("第%d名学生%s,%s,三门分数分别为%.2f,%.2f,%.2f,平均分为%.2f\n", count + 1,
class[count].member.fname, class[count].member.lname, class[count].grade[0],
class[count].grade[1], class[count].grade[2], class[count].average);
count++;
}
printf("班级的平均分为%.2f", total);
return 0;
}
char* s_gets(char* st, int n)
{
char* ret_val, * find;
if (ret_val = fgets(st, n, stdin))
if (find = strchr(st, '\n'))
*find = '\0';
else
while (getchar() != '\n')
continue;
return ret_val;
}
C PRIMER PLUS 第14章 第5题
最新推荐文章于 2023-04-11 14:43:04 发布