(c语言)初始化数组,排序,清空,显示。
来源:互联网 发布:中国直播网络灵异事件 编辑:程序博客网 时间:2024/04/28 19:17
问题描述:
编写以下四个函数:
init();//设计函数初始化数组为 1 2 3 4 5 6 7 8 9 10
sort();//设计排序函数,实现数组的降序排列:10 9 8 7 6 5 4 3 2 1empty();//清空数组,全为0
show();//显示数组
程序分析:
程序的思路:a.先将程序的头和尾写好,在主函数中将要被处理的两个参数(一个数组arr,和数组的长度len)。b.再封装那几个函数,额外加上一个menu函数。c.在主函数中用switch case语句调用这几个函数。
代码如下:
<pre name="code" class="cpp">/**init();//设计函数初始化数组为 1 2 3 4 5 6 7 8 9 10sort();//设计排序函数,实现数组的降序排列:10 9 8 7 6 5 4 3 2 1empty();//清空数组,全为0show();//显示数组**/#include<stdio.h>#include<stdlib.h>#define LENGTH 10 //宏定义数组的大小/***初始化数组****/void init(int arr[],int n){int i = 0;/**给数组中的每个元素赋值**/for(i = 0;i < n;i++){arr[i] = i+1;}}/***选择排序****/void selection_sort(int arr[],int n){int i = 0; //用下标i表示数组中当前元素int j = 0; //用下标j表示这次循环中找到的最大元素的下标int k; //用下标k存放每次循环中最大元素的下标int temp; //定义中间变量,用于下面的交换for(i = 0;i<n;i++){k = i;//假设每次循环中的最大值就是循环中的第一个值的值for(j = i+1;j < n;j++) //从每次循环中的第二个开始与假设的最大值比较{if(arr[j] > arr[k])//当找到比假设值大的时候,将最大值下标赋给k{k = j;}}if(k != i)//查找后如果循环中最大值不是假设值{temp = arr[i]; //交换,使k下标对应的值为每次循环中的最大值arr[i] = arr[k];arr[k] = temp;}}}/***冒泡排序****/void bubble_sort(int arr[],int n){int i = 0; //定义外层循环变量i,并且初始化为0int j = 0; //定义内层循环变量j,并且初始化为0int temp; //定义中间变量,用于后面的交换for(i = 0;i<n-1;i++) //外层循环,总共进行n-1趟相邻的两两比较{for(j = 0;j < n-1-i;j++)//内层循环,每趟循环比较n-1-i次{if(arr[j+1]>arr[j]) //当相邻的两两比较中,后者大于前者,进行交换{temp = arr[j+1];arr[j+1] = arr[j];arr[j] = temp;}}}}/***清空数组****/void empty(int arr[],int n)//这个函数时将数组中的所有元素置为0{int i = 0;for(i = 0;i < n;i++){arr[i] = 0;}}/***打印显示数组****/void show(int arr[],int n) //这个函数主要用打印的方式,显示每次调用其他函数后的结果{int i = 0; for(i = 0;i < n;i++){printf("%d ",arr[i]);}printf("\n");}/***设置菜单****/void menu() //编写menu给用户提供如何使用的信息{printf("**************************\n");printf("*********初始化->1********\n");printf("*******冒泡排序->2********\n");printf("*******选择排序->3********\n");printf("********清空->4***********\n");printf("********打印->5***********\n");printf("**************************\n");}int main(){int j = 0;int a[10]; //定义一个大小为10*sizeof(int)的数组int len = sizeof(a)/sizeof(a[0]); //数组的大小int select; //定义select作为switch函数的参数int i = 1; //定义并初始化循环变量while(i){ menu(); //调用menu函数printf("请输入功能序号:\n") ;scanf("%d",&select);system("cls"); //这个是清屏的函数,可以在显示前调用这个函数,这样就可以清晰的显示了。//清屏的头文件是"stdlib.h"switch(select) //编写switch函数{case 1:init(a,len);break;case 2:bubble_sort(a,len);break;case 3:selection_sort(a,len);break;case 4:empty(a,len);break;case 5:show(a,len);break;default:break;}}return 0;}
0 0
- (c语言)初始化数组,排序,清空,显示。
- 【C语言】将一个数组进行初始化、清空、逆序、显示。
- 【c语言】函数实现数组初始化,冒泡排序,现实,和清空功能
- 【C语言】 数组的初始化、逆置、清空
- c语言:创建一个数组,分别实现函数初始化数组、 清空数组、数组元素的逆置
- C语言 创建一个数组 实现函数init()初始化数组 empty()清空数组 reverse()逆置数组
- 写一个数组,实现初始化,逆序,清空,显示。
- 实现数组的初始化,排序,打印,清空
- C语言:实现函数init()初始化数组、 实现empty()清空数组、 实现reverse()函数完成数组元素的逆置
- C语言数组清空的几种方法比较
- C语言数组清空的几种方法比较
- C语言下的创建一个数组, 实现函数init()初始化数组、 实现empty()清空数组、 实现reverse()函数完成数组元素的逆置。 要求:自己设计函数的参数,返回值。
- 用c语言实现 一个通讯录(实现 增加、删除、查找、修改、显示、清空功能)
- char数组初始化及清空
- 初始化,清空,逆置数组
- 数组初始化,清空数组,数组元素逆置
- 清空数据的方法(c语言实现)
- 【C】函数相关--乘法口诀表,两数互换,闰年,初始化数组、清空数组、数组逆置, 二分查找
- LeetCode Convert Sorted Array to Binary Search Tree
- 启动另一个Activity
- [java]ClassLoader
- 机器学习资料
- 【凯子哥带你做高仿】“煎蛋”Android版的高仿及优化(一)——逆向工程及TcpDump抓包入门
- (c语言)初始化数组,排序,清空,显示。
- Linux下 VIM编辑器的使用
- 关于申请“程序员必读的职业规划书”的声明
- 【凯子哥带你做高仿】“煎蛋”Android版的高仿及优化(二)——大图显示模式、评论“盖楼”效果实现详解
- Binary Tree Level Order Traversal -- leetcode
- 单链表基础操作的Java实现
- VC++获取当前系统时间日期 GetSystemTime()函数的用法
- Ehcache 整合Spring 使用页面、对象缓存
- OC 数组