学习数据结构与算法|数据结构课上练习(一)

实验一 实验要求:
对一维数组中的元素进行逆序排列,请使用函数调用的方式
运行结果要求:
学习数据结构与算法|数据结构课上练习(一)
文章图片

逆序操作示意图:
学习数据结构与算法|数据结构课上练习(一)
文章图片

自然语言描述:

  1. 定义数组
  2. 循环向数组输入元素
  3. 逆序函数(传入数组)
  4. 循环输出逆序后的数组元素
程序语言描述:
#include #define N 10 void inverse(int arr[]){ //定义中间变量,循环变量 int temp,j; //逆序操作 for(int i=0; i

运行结果
学习数据结构与算法|数据结构课上练习(一)
文章图片

实验二 实验要求:
依次输出各个数组元素的地址以及元素的值,在此基础上尝试一下,结构体类型的存储地址有何不同?
运行结果要求:
学习数据结构与算法|数据结构课上练习(一)
文章图片

自然语言描述:
  1. 定义数组
  2. 循环向数组写入元素
  3. 循环输出元素地址及其值
程序语言描述:
#include int main(){ //定义数组 int arr[5]; //循环向数组输入元素 for(int i=0; i<5; i++){printf("arr[%d]:",i); scanf("%d",&arr[i]); } //循环输出数组元素的地址及其值 for(int i=0; i<5; i++) printf("the address of arr[%d]:%d,the value of arr[%d]:%d\n",i,&arr[i],i,arr[i]); }

运行结果:
一个整型 int 占 4byte
学习数据结构与算法|数据结构课上练习(一)
文章图片

定义结构体类型观察存储地址有何不同
自然语言描述:
1.定义关于书的结构体(包含id,name,price)
2.定义指针(指向实例化的Book数组中每个元素)
3.实例化Book数组(存储多本书)
3.循环输入每本书的id,name,价格
4.指针指向每本书
5.循环打印每本书的id,name,价格
学习数据结构与算法|数据结构课上练习(一)
文章图片

程序语言描述:
#include #define N 3typedef struct{ int id; //书编号 4bytes char name[10]; //书名,10bytes,一本书的书名在10个字符以内包含10个字符 float price; //书价,4bytes }Book; int main(){ Book *p; //定义指针(指向每本书) Book B[N]; //实例化Book数组,存储多本书 for(int i=0; i

运行结果:
上述结构体占18 bytes,由于字节对齐,实际分配了20 bytes
学习数据结构与算法|数据结构课上练习(一)
文章图片

实验三 设有一个教师与学生通用的表格,教师的数据有姓名、年龄、职业、教研室四项,学生有姓名、年龄、专业、班级四项,编程输入人员的数据,再以表格输出。
struct studenteacher{ char name[10]; //姓名 int age; //年龄 char job; //工种:s学生,t教师 union{ //共用体:同一地址只能在同一时间存入共用体中一个类型的值 int class[3]; //班级 char office[10]; //教研室 }u1; }st[N];

学习数据结构与算法|数据结构课上练习(一)
文章图片

#include #define N 3struct studenteacher{ char name[10]; //姓名 int age; //年龄 char job; //工种:s学生,t教师 union { //共用体:同一地址只能在同一时间存入共用体中一个类型的值 char cla[5]; //班级 char office[10]; //教研室 }u1; }st[N]; int main(){ printf("请输入%d位人员信息\n",N); //循环输入人员信息(姓名,年龄,工种) for(int i=1; i

运行结果:
【学习数据结构与算法|数据结构课上练习(一)】学习数据结构与算法|数据结构课上练习(一)
文章图片

    推荐阅读