c语言结构体实验报告

  • 格式:docx
  • 大小:60.97 KB
  • 文档页数:3

实验目的

(1) 掌握结构体的定义和使用方式;

(2) 掌握结构体数组的使用方法;

(3) 理解结构体指针作为函数参数的方法。

实验任务

(1)编写程序:定义一个结构类型,可以存储一个学生的姓名、数学和计算机两门课的成绩,输入一个学生的姓名和两门课的成绩到结构体变量中,然后计算并输出其平均成绩及姓名。

(2)编写程序:定义一个结构类型, 可以存储一个学生的平时、实习、测验、期末成绩和总评成绩。

1)编程完成输入4个学生的平时、实习、测验和期末成绩。封装成函数。

2)计算这4个学生的总评成绩,封装成函数。其中平时、实习、测验和期末分别占10%、20%、20%、50%。

3)找到总评成绩最高的学生,封装成函数。

4)输出总评成绩最高的学生的成绩信息(平时、实习、测验、期末成绩和总评成绩)。

5)要求用结构体数组

流程图

见白纸

源程序

1.

#include

struct student

{

int name[20];

float a;

float b;

};

int main()

{

struct student stu1;

printf("请输入学生姓名、数学成绩、计算机成绩:\n");

scanf("%s%f%f",&, &stu1.a, &stu1.b);

float sum;

sum = (stu1.a + stu1.b) / 2;

printf("%s平均成绩为%f", , sum);

return 0;

}

2.

#include

struct student

{

float a;

float b;

float c;

float d; float average;

};

int max(int a[4])

{

int i,t,m=a[0],max=0;

for (i = 0; i < 4; i++)

{

if (m < a[i])

{

a[i] = t;

a[i] = m;

m = t;

max = i;

}

}

return max;

}

int main()

{

int sum[4];

int m,n;

struct student stu[4];

printf("请输入4个学生的平时、实习、测验、期末\n");

int i;

for (i = 0; i < 4; i++)

{

scanf("%f%f%f%f", &stu[i].a, &stu[i].b, &stu[i].c, &stu[i].d);

sum[i] = stu[i].average = stu[i].a*0.1 + stu[i].b*0.2 + stu[i].c*0.2 + stu[i].d*0.3;

}

m = max(sum);

n = m + 1;

printf("成绩最高的第%d个学生\n平时成绩为%f\n实习趁机为%f\n测验成绩为%f\n期末成绩为%f\n总评成绩为%f", n, stu[m].a, stu[m].b, stu[m].c, stu[m].d, stu[m].average);

return 0;

}

运行结果

实验总结

基本掌握结构体的定义和使用方式;

基本掌握结构体数组的使用方法;

能理解结构体指针 作为函数参数的方法。