C语言程序设计实验报告
(结构体和共用体)
1实验目的
1、掌握结构体类型变量的定义和使用;
2、掌握结构体类型变量数组的概念和使用;
3、掌握链表的概念,初步学会对链表进行操作;
4、掌握共用体的概念和使用。
2实验内容
1)在一个结构体数组中存入三个人的姓名及年龄,输出三者中年龄居中者的姓名及年龄。
要求:
1、三个人的数据采用直接初始化的方式赋值;
2、利用结构体指针实现处理过程。
3算法描述流程图
4源程序
#include<stdio.h>
main()
{
struct students
{
char name[10];
int age;
} stu[3]={{"Jack",17},{"Anne",16},{"Tom",19}},stu1[3];
struct students *stu2=&stu[0],*t=&stu1[0];int i,j,k;
for(i=0;i<2;i++)
{
k=i;
for(j=i+1;j<3;j++)
{
if(((stu2+j)->age)<((stu2+k)->age))
k=j;
}
*t=*(stu2+k);
*(stu2+k)=*(stu2+i);
*(stu2+i)=*t;
}
printf("三人中年龄居中者姓名:%s,年龄:%d\n",stu[1].name,stu[1].age); }
5测试数据
{"Jack",17},{"Anne",16},{"Tom",19}
6运行结果
7出现问题及解决方法;
实验中,引用结构体数组出现错误,忘记写{},指针的初始化忘记写*,这些问题都是些低级错误,不应该犯的,在循环中,i的初始化错误。
以后应更加仔细,多注意细节问题,很多时候细节是决定事情的关键。
8实验心得
在本次试验中,我通过学习和实践,对结构体类型变量的定义和使用以及链表的概念有了更清楚的理解,初步学会了对链表进行操作,掌握了结构体类型变量数组以及共用体的使用。