实验8结构体应用

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验8.结构体应用---10081 学生成绩统计(结构体)

1.【问题描述】用结构数组实现学生成绩统计各功能。

某班有N(N<=30)个学生,共开设5门课程,分别用三个函数实现如下功能:

⑴求第一门课程的平均分;

⑵找出有2门及2门以上不及格的学生,并输出其学号;

⑶找出平均成绩在90分及以上的学生,输出他们的学号。

【输入形式】第一行为一个整数N,表示本班共N个人,接下来的N行中每行包含一个学生的信息,包括学号(长度小于11的字符串)、课程1成绩、课程2成绩、课程3成绩、课程4成绩、课程5成绩。成绩均为整数。

【输出形式】输出共三行:

第一行为本班第一门课程的平均成绩。(保留小数点后两位)

第二行为有2门及2门以上不及格的学生的学号,各学号之间用一个空格分隔。若不存在,则打印"no"。

第三行为平均成绩在90分及以上的学生的学号, 各学号之间用一个空格分隔。若不存在,则打印"no"。

【样例输入】3

070001 90 80 85 50 42

070002 93 95 90 88 92

070003 98 92 84 90 91

【样例输出】93.67

070001

070002 070003

【样例说明】本班有3个学生。

第1个学生学号为: 070001, 5门课程的成绩分别为: 90、80、85、50、42;

第2个学生学号为: 070002, 5门课程的成绩分别为: 93、95、90、88、92;

第3个学生学号为: 070003, 5门课程的成绩分别为: 98、92、84、90、91。

本班第1门课程的平均成绩为: 93.67; 有2门及2门以上不及格的学生的学号为: 070001;

平均成绩在90分及以上的学生的学号为: 070002、070003。

【评分标准】本题共2个测试点,每个测试点1.0分,共2.0分。

#include

struct student

{

char num[10];

int b[5];

}a[30];

int main()

{

void everage(struct student *p1,int m);

void failure(struct student *p2,int m);

void success(struct student *p3,int m);

int n,i;

scanf("%d",&n);

for(i=0;i

scanf("%s%d%d%d%d%d",a[i].num,&a[i].b[0],&a[i].b[1],&a[i].b[2],&a[i].b[3],&a[i].b[4]); everage(a,n);

failure(a,n);

success(a,n);

return 0;

}

void everage(struct student *p1,int m) {

int i,sum=0;

float ever=0;

for(i=0;i

sum+=p1[i].b[0];

ever=1.0*sum/m;

printf("%.2f\n",ever);

}

void failure(struct student *p2,int m) {

int i,k,j,h=0;

for(i=0;i

{

k=0;

for(j=0;j<5;j++)

if(p2[i].b[j]<60)

k++;

if(k>=2)

{

printf("%s ",a[i].num);

h++;

}

}

if(h==0)

printf("no");

printf("\n");

}

void success(struct student *p3,int m) {

int i,j,h=0,sum=0;

float everage;

for(i=0;i

{

everage=0;

sum=0;

for(j=0;j<5;j++)

sum+=p3[i].b[j];

everage=1.0*sum/5;

if(everage>=90)

{

printf("%s ",p3[i].num);

h++;

}

}

if(h==0)

printf("no");

printf("\n");

}

实验8.结构体应用---10082 图书价格统计

2.【问题描述】用结构数组保存书的信息。现有N(N<50)本图书,每本图书包括书名(长

度小于30的字

符串)、出版社(长度小于15的字符串)、数量(整数)、单价(浮点数)信息,读入书

的信息并按单价由少到多的顺序输出各书的所有信息,然后输出购买这些书的总费用。

【输入形式】第一行为一个整数N,表示图书数量,接下来的N行中每行包含一本书的信息数据,各数

据之间由空格分隔。

【输出形式】输出前N行,为按单价排序的所有书的信息,第N+1行为购买这些书的总费用(保留到小

数点后两位)。

【样例输入】3

C-Programming qinghu 50 25.50

DataStruct jixiegongye 30 31.55

OpratingSystem gaodengjiaoyu 60 18.30

【样例输出】OpratingSystem gaodengjiaoyu 60 18.30

C-Programming qinghu 50 25.50

DataStruct jixiegongye 30 31.55

3319.50

【样例说明】(1)输入的所有书的信息用英文以及数字(不能是汉字)表示。

(2)输出前N行的格式设定为:"%-30s%-20s%-10d%-.2f\n"。

【评分标准】本题共2个测试点,每个测试点1.0分,共2.0分。

#include

#include

struct book

{

char name[30];

char chu[15];

int count;

float price;

}a[50];

int main()

{

相关文档
最新文档