一、问题描述
求数组的排序
问题的描述
如下几点所示
- 使用rand()库函数随机生成10个1-100之间的数字。
- 声明数组的大小为10。
- 随机生成的10个数字赋值给数组。
- 给数组内的元素由小到大排序。
二、算法实例编译环境
c/c++开发分享C语言算法练习之数组元素排序c语言经典算法实例的编译环境,使用的是集成开发环境:visual studio 2019
visual studio 2019官网链接如下
visual studio 2019官网链接
visual studio 2019集成的开发环境的特点有
- visual studio 2019默认安装live share代码协作服务。
- 帮助用户快速编写代码的新欢迎窗口、改进搜索功能、总体性能改进。
- visual studio intellicode ai帮助。
- 更好的python虚拟和conda支持。
- 以及对包括winforms和wpf在内的.net core 3.0项目支持等。
三、算法实例实现过程
3.1、包含头文件
包含头文件 代码如下所示
#pragma once #include <stdio.h> #include <stdlib.h> #include <time.h> #define max 10 // 定义宏
将要用到的c语言头文件包含近年来。
3.2、定义宏和声明数组
定义宏和声明数组 代码如下所示
#define max 10 // 定义宏 int myarr[max]; // 定义数组变量
定义了max ,代表了max 为常数10。
声明了数组myarr。
3.3、声明相关变量
声明相关变量 代码如下所示
int i, j, tempval; // 定义变量
声明相关变量i, j, tempval。
3.4、随机生成十个数字赋值给数组
随机生成十个数字赋值给数组 代码如下所示
/// <summary> /// 随机生成十个数字赋值给数组 /// </summary> /// <returns></returns> srand(time(null)); for (i = 0; i < 10; i++) { myarr[i] = rand() % 100 + 1; }
srand(time(null))可以保证每一次生成的数字都不同。
通过循环,将随机生成十个数字赋值给数组。
3.5、输出随机生成的十个数字
输出随机生成的十个数字 代码如下所示
/// <summary> /// 输出随机生成的十个数字 /// </summary> /// <returns></returns> printf("the ten randomly generated numbers are as followsn"); for (i = 0; i < 10; i++) { printf("%d ", myarr[i]); } printf("n");
输出 我们向数组中输入的数据。
按f5进行编译,调试结果如下所示。
可以正确的输出随机生成的数字,存储于数组中的数据。
3.6、数组从小到大进行排序
数组从小到大进行排序 代码如下所示
/// <summary> /// 输出数组元素排序好的数字 /// </summary> /// <returns></returns> printf("nthe ten randomly generated numbers are sorted from smallest to largest as followsn"); for (i = 0; i < 10; i++) { printf("%d ", myarr[i]); } printf("nn");
数组的排序方式为从小到大
采用的排序方式为冒泡排序
3.7、输出数组元素排序好的数字
输出数组元素排序好的数字 代码如下所示
/// <summary> /// 输出数组元素排序好的数字 /// </summary> /// <returns></returns> printf("nthe ten randomly generated numbers are sorted from smallest to largest as followsn"); for (i = 0; i < 10; i++) { printf("%d ", myarr[i]); } printf("nn");
可以输出排序好的数字。
数字存储于数字之中。
按f5进行编译,调试结果如下所示。
the ten randomly generated numbers are as follows
78 95 27 65 62 83 19 74 8 90the ten randomly generated numbers are sorted from smallest to largest as follows
8 19 27 62 65 74 78 83 90 95
请按任意键继续. . .
可以看做数字是从小到大排序输出的。
排序算法符合要求。
四、经典算法实例程序 完整代码
经典算法实例程序完整代码如下所示
4.1、main.h文件
#pragma once #include <stdio.h> #include <stdlib.h> #include <time.h> #define max 10 // 定义宏
4.2、main.c文件
#define _crt_secure_no_warnings #include "main.h" int main() { system("color 3e"); int myarr[max]; // 定义数组变量 int i, j, tempval; // 定义变量 /// <summary> /// 随机生成十个数字赋值给数组 /// </summary> /// <returns></returns> srand(time(null)); for (i = 0; i < 10; i++) { myarr[i] = rand() % 100 + 1; } /// <summary> /// 输出随机生成的十个数字 /// </summary> /// <returns></returns> printf("the ten randomly generated numbers are as followsn"); for (i = 0; i < 10; i++) { printf("%d ", myarr[i]); } printf("n"); /// <summary> /// 数组从小到大进行排序 /// </summary> /// <returns></returns> for (j = 0; j < 10; j++) { for (i = 0; i < 9 - j; i++) { if (myarr[i] > myarr[i + 1]) { tempval = myarr[i]; myarr[i] = myarr[i + 1]; myarr[i + 1] = tempval; } } } /// <summary> /// 输出数组元素排序好的数字 /// </summary> /// <returns></returns> printf("nthe ten randomly generated numbers are sorted from smallest to largest as followsn"); for (i = 0; i < 10; i++) { printf("%d ", myarr[i]); } printf("nn"); system("pause"); return 0; }
五、总结
c语言经典算法实例:数组元素排序,要实现的目标如下和要点如下
使用rand()库函数随机生成10个1-100之间的数字。
声明数组的大小为10。
随机生成的10个数字赋值给数组。
给数组内的元素由小到大排序。
排序方式为冒泡排序方式。
到此这篇关于c语言算法练习之数组元素排序的文章就介绍到这了,更多相关c语言数组元素排序内容请搜索<计算机技术网(www.ctvol.com)!!>以前的文章或继续浏览下面的相关文章希望大家以后多多支持<计算机技术网(www.ctvol.com)!!>!
需要了解更多c/c++开发分享C语言算法练习之数组元素排序,都可以关注C/C++技术分享栏目—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/1236815.html