From 387e510ab7b3d432b1eb651635421360988af421 Mon Sep 17 00:00:00 2001 From: Zhao Zuohong <1040110848@qq.com> Date: Wed, 11 Nov 2020 21:52:26 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AC=AC=E4=B8=80=E6=AC=A1=E5=A4=A7=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A=E9=A2=98=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/_posts/big-homework1.md | 138 +++++++++++++++++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100644 source/_posts/big-homework1.md diff --git a/source/_posts/big-homework1.md b/source/_posts/big-homework1.md new file mode 100644 index 0000000..7e10109 --- /dev/null +++ b/source/_posts/big-homework1.md @@ -0,0 +1,138 @@ +--- +title: 第一次大作业(题目) +date: 2020-11-11 21:44:45 +tags: +--- + +# 大作业的训练目标 + +1. 模块化程序结构设计:从系统的角度进行函数的功能划分和函数的分层设计,程序结构要清晰。 +2. 掌握接口概念和函数接口设计:合理设计函数的参数表和返回值 +3. 数据的组织和管理:从系统角度出发,规划程序中使用的全局变量、常量、数组、辅助变量和辅助数组 +4. 交互界面和用户体验:软件功能全面,使用方便,输出排版美观,输入提示周到 +5. 养成良好的编程风格和习惯 +6. 掌握大型程序的调试和测试方法:学会分段调试程序和使用编程环境提供的debug功能。学会选择不同的样本数据检测软件中可能存在的问题。 + +# 数组运算器知识点 + +* 一维数组的定义和使用 +* 循环结构和分支结构 +* 函数的定义和函数的调用 +* 数组作为函数的参数 +* 局部变量和全局变量 +* 数组处理技术(排序,插入,删除,查找,统计,逆置) +* 数组作为实现算法的辅助工具(筛法求素数,约瑟夫环等) + +# 数组运算器的分级菜单 + +``` +0、退出 +1、配置系统参数(注:修改程序中几个主要全局变量) +2、生成样本数据 + 1)用指定范围的随机数填充数组 + 2)键盘输入 + 3)整个数组填同一个值 + 4)用等差序列填充数组(注:输入序列的起始值和每项的差值) +3、显示数组 +4、删除 + 1)删除指定下标的元素 + 2)删除指定值的元素 + 3)删除按指定下标区间的一组元素 +5、插入 + 1)按指定下标位置插入新元素 + 2)在有序数组中插入新元素 +6、统计 + 1)求最大值 + 2)求最小值 + 3)求平均值 + 4)求方差和均方差 +7、查找 +1) 普通查找 +2) 二分查找 +8、判断 + 1)是否升序排列 + 2)是否降序排列 + 3)是否全部相等 +9、排列数组元素 + 1)排序 + a. 冒泡法 + b. 选择法 + c. 交换法 + 2)逆置数组 + 3)左旋数组 + 4)右旋数组 +10、数组的其他应用 + 1)约瑟夫环 + 2)筛法求素数 +11、其他自选功能 +``` + +# 数组运算器的推荐函数 + +```C +void printarr(int *a, int n); +//打印数组 + +void FillArray(int a[], int n); +//生成数组的样本数据 + +void Config(); +//配置系统参数:数组元素个数、一行打印元素个数、每个元素的打印宽度等 + +void Reverse(int a[], int n); +//逆置数组 + +void insert(int a[], int n, int pos, int val); +//在数组中pos下标处插入新元素 + +void Delete(int a[], int n, int id); +//删除指定下标的元素 + +void DeleteRange(int a[], int n, int s, int t); +//删除s..t下标区间的元素 + +int Search(int a[], int n, int val); +//查找值为val的元素,找到返回其下标,找不到返回-1 + +int isAsc(int a[], int n); +//判断数组是否升序排列 + +int isDesc(int a[], int n); +//判断数组是否降序排列 + +int isEqual(int a[], int n); +//判断数组是否全相等 + +int max(int a[],int n); +//返回数组最大值的下标 + +int max(int a[],int n); +//返回数组最小值的下标 + +float average(int a[],int n); +//计算数组的平均值 + +void OrderInsert(int a[], int n, int val); +//在有序数组中插入新元素保持有序性 + +void BubbleSort(int a[], int n); +//冒泡排序 + +void SelectSort(int a[],int n); +//选择排序 + +void ExchangeSort(int a[],int n); +//交换排序 + +int Search(int a[], int n, int val); +//普通查找 + +int BiSearch(int a[], int n, int val); +//二分查找 + +int LeftRotate(int a[], int n, int m); +//左旋m位 + +int RightRotate(int a[], int n, int m); +//右旋m位 +```