学习数据结构与算法|数据结构课上练习(一)
实验一 实验要求:
对一维数组中的元素进行逆序排列,请使用函数调用的方式
运行结果要求:
文章图片
逆序操作示意图:
文章图片
自然语言描述:
- 定义数组
- 循环向数组输入元素
- 逆序函数(传入数组)
- 循环输出逆序后的数组元素
#include
#define N 10
void inverse(int arr[]){ //定义中间变量,循环变量
int temp,j;
//逆序操作
for(int i=0;
i
运行结果
文章图片
实验二 实验要求:
依次输出各个数组元素的地址以及元素的值,在此基础上尝试一下,结构体类型的存储地址有何不同?
运行结果要求:
文章图片
自然语言描述:
- 定义数组
- 循环向数组写入元素
- 循环输出元素地址及其值
#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
运行结果:
【学习数据结构与算法|数据结构课上练习(一)】
文章图片
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- Docker应用:容器间通信与Mariadb数据库主从复制
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量
- 第326天
- Shell-Bash变量与运算符
- 由浅入深理解AOP
- 继续努力,自主学习家庭Day135(20181015)
- python学习之|python学习之 实现QQ自动发送消息
- 逻辑回归的理解与python示例
- Guava|Guava RateLimiter与限流算法