網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
一、問(wèn)題描述
求數(shù)組的排序
問(wèn)題的描述
如下幾點(diǎn)所示
- 使用rand()庫(kù)函數(shù)隨機(jī)生成10個(gè)1-100之間的數(shù)字。
- 聲明數(shù)組的大小為10。
- 隨機(jī)生成的10個(gè)數(shù)字賦值給數(shù)組。
- 給數(shù)組內(nèi)的元素由小到大排序。
二、算法實(shí)例編譯環(huán)境
本文C語(yǔ)言經(jīng)典算法實(shí)例的編譯環(huán)境,使用的是集成開(kāi)發(fā)環(huán)境:Visual Studio 2019
Visual Studio 2019官網(wǎng)鏈接如下
Visual Studio 2019官網(wǎng)鏈接
Visual Studio 2019集成的開(kāi)發(fā)環(huán)境的特點(diǎn)有
- Visual Studio 2019默認(rèn)安裝Live Share代碼協(xié)作服務(wù)。
- 幫助用戶(hù)快速編寫(xiě)代碼的新歡迎窗口、改進(jìn)搜索功能、總體性能改進(jìn)。
- Visual Studio IntelliCode AI幫助。
- 更好的Python虛擬和Conda支持。
- 以及對(duì)包括WinForms和WPF在內(nèi)的.NET Core 3.0項(xiàng)目支持等。
三、算法實(shí)例實(shí)現(xiàn)過(guò)程
3.1、包含頭文件
包含頭文件 代碼如下所示
#pragma once
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX 10 // 定義宏
將要用到的C語(yǔ)言頭文件包含近年來(lái)。
3.2、定義宏和聲明數(shù)組
定義宏和聲明數(shù)組 代碼如下所示
#define MAX 10 // 定義宏
int myArr[MAX]; // 定義數(shù)組變量
定義了MAX ,代表了MAX 為常數(shù)10。
聲明了數(shù)組myArr。
3.3、聲明相關(guān)變量
聲明相關(guān)變量 代碼如下所示
int i, j, tempVal; // 定義變量
聲明相關(guān)變量i, j, tempVal。
3.4、隨機(jī)生成十個(gè)數(shù)字賦值給數(shù)組
隨機(jī)生成十個(gè)數(shù)字賦值給數(shù)組 代碼如下所示
/// <summary>
/// 隨機(jī)生成十個(gè)數(shù)字賦值給數(shù)組
/// </summary>
/// <returns></returns>
srand(time(NULL));
for (i = 0; i < 10; i++)
{
myArr[i] = rand() % 100 + 1;
}
srand(time(NULL))可以保證每一次生成的數(shù)字都不同。
通過(guò)循環(huán),將隨機(jī)生成十個(gè)數(shù)字賦值給數(shù)組。
3.5、輸出隨機(jī)生成的十個(gè)數(shù)字
輸出隨機(jī)生成的十個(gè)數(shù)字 代碼如下所示
/// <summary>
/// 輸出隨機(jī)生成的十個(gè)數(shù)字
/// </summary>
/// <returns></returns>
printf("The ten randomly generated numbers are as follows\n");
for (i = 0; i < 10; i++)
{
printf("%d ", myArr[i]);
}
printf("\n");
輸出 我們向數(shù)組中輸入的數(shù)據(jù)。
按F5進(jìn)行編譯,調(diào)試結(jié)果如下所示。
可以正確的輸出隨機(jī)生成的數(shù)字,存儲(chǔ)于數(shù)組中的數(shù)據(jù)。
3.6、數(shù)組從小到大進(jìn)行排序
數(shù)組從小到大進(jìn)行排序 代碼如下所示
/// <summary>
/// 輸出數(shù)組元素排序好的數(shù)字
/// </summary>
/// <returns></returns>
printf("\nThe ten randomly generated numbers are sorted from smallest to largest as follows\n");
for (i = 0; i < 10; i++)
{
printf("%d ", myArr[i]);
}
printf("\n\n");
數(shù)組的排序方式為從小到大
采用的排序方式為冒泡排序
3.7、輸出數(shù)組元素排序好的數(shù)字
輸出數(shù)組元素排序好的數(shù)字 代碼如下所示
/// <summary>
/// 輸出數(shù)組元素排序好的數(shù)字
/// </summary>
/// <returns></returns>
printf("\nThe ten randomly generated numbers are sorted from smallest to largest as follows\n");
for (i = 0; i < 10; i++)
{
printf("%d ", myArr[i]);
}
printf("\n\n");
可以輸出排序好的數(shù)字。
數(shù)字存儲(chǔ)于數(shù)字之中。
按F5進(jìn)行編譯,調(diào)試結(jié)果如下所示。
The ten randomly generated numbers are as follows
78 95 27 65 62 83 19 74 8 90
The ten randomly generated numbers are sorted from smallest to largest as follows
8 19 27 62 65 74 78 83 90 95
請(qǐng)按任意鍵繼續(xù). . .
可以看做數(shù)字是從小到大排序輸出的。
排序算法符合要求。
四、經(jīng)典算法實(shí)例程序 完整代碼
經(jīng)典算法實(shí)例程序完整代碼如下所示
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]; // 定義數(shù)組變量
int i, j, tempVal; // 定義變量
/// <summary>
/// 隨機(jī)生成十個(gè)數(shù)字賦值給數(shù)組
/// </summary>
/// <returns></returns>
srand(time(NULL));
for (i = 0; i < 10; i++)
{
myArr[i] = rand() % 100 + 1;
}
/// <summary>
/// 輸出隨機(jī)生成的十個(gè)數(shù)字
/// </summary>
/// <returns></returns>
printf("The ten randomly generated numbers are as follows\n");
for (i = 0; i < 10; i++)
{
printf("%d ", myArr[i]);
}
printf("\n");
/// <summary>
/// 數(shù)組從小到大進(jìn)行排序
/// </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>
/// 輸出數(shù)組元素排序好的數(shù)字
/// </summary>
/// <returns></returns>
printf("\nThe ten randomly generated numbers are sorted from smallest to largest as follows\n");
for (i = 0; i < 10; i++)
{
printf("%d ", myArr[i]);
}
printf("\n\n");
system("pause");
return 0;
}
五、總結(jié)
C語(yǔ)言經(jīng)典算法實(shí)例:數(shù)組元素排序,要實(shí)現(xiàn)的目標(biāo)如下和要點(diǎn)如下
使用rand()庫(kù)函數(shù)隨機(jī)生成10個(gè)1-100之間的數(shù)字。
聲明數(shù)組的大小為10。
隨機(jī)生成的10個(gè)數(shù)字賦值給數(shù)組。
給數(shù)組內(nèi)的元素由小到大排序。
排序方式為冒泡排序方式。
原文鏈接:https://blog.csdn.net/m0_47419053/article/details/126688181
相關(guān)推薦
- 2022-12-21 PyGame實(shí)現(xiàn)初始化導(dǎo)入所有模塊方法詳解_python
- 2022-06-17 Ruby信號(hào)處理詳解_ruby專(zhuān)題
- 2022-10-26 jQuery?基礎(chǔ)選擇器與屬性選擇器_jquery
- 2022-03-14 spring junit 做單元測(cè)試,報(bào) Failed to load ApplicationCon
- 2022-08-23 構(gòu)建?Python?命令行參數(shù)的?4?種常見(jiàn)方式_python
- 2022-05-09 Python的數(shù)據(jù)結(jié)構(gòu)與算法的隊(duì)列詳解(3)_python
- 2022-09-07 python讀取mat文件中的struct問(wèn)題_python
- 2023-07-24 uniapp開(kāi)發(fā) h5和小程序 拖動(dòng)懸浮按鈕
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門(mén)
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支