網(wǎng)站首頁 編程語言 正文
一、問題描述
求數(shù)組的排序
問題的描述
如下幾點所示
- 使用rand()庫函數(shù)隨機生成10個1-100之間的數(shù)字。
- 聲明數(shù)組的大小為10。
- 隨機生成的10個數(shù)字賦值給數(shù)組。
- 給數(shù)組內(nèi)的元素由小到大排序。
二、算法實例編譯環(huán)境
本文C語言經(jīng)典算法實例的編譯環(huán)境,使用的是集成開發(fā)環(huán)境:Visual Studio 2019
Visual Studio 2019官網(wǎng)鏈接如下
Visual Studio 2019官網(wǎng)鏈接
Visual Studio 2019集成的開發(fā)環(huán)境的特點有
- Visual Studio 2019默認安裝Live Share代碼協(xié)作服務(wù)。
- 幫助用戶快速編寫代碼的新歡迎窗口、改進搜索功能、總體性能改進。
- Visual Studio IntelliCode AI幫助。
- 更好的Python虛擬和Conda支持。
- 以及對包括WinForms和WPF在內(nèi)的.NET Core 3.0項目支持等。
三、算法實例實現(xiàn)過程
3.1、包含頭文件
包含頭文件 代碼如下所示
#pragma once
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX 10 // 定義宏
將要用到的C語言頭文件包含近年來。
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、隨機生成十個數(shù)字賦值給數(shù)組
隨機生成十個數(shù)字賦值給數(shù)組 代碼如下所示
/// <summary>
/// 隨機生成十個數(shù)字賦值給數(shù)組
/// </summary>
/// <returns></returns>
srand(time(NULL));
for (i = 0; i < 10; i++)
{
myArr[i] = rand() % 100 + 1;
}
srand(time(NULL))可以保證每一次生成的數(shù)字都不同。
通過循環(huán),將隨機生成十個數(shù)字賦值給數(shù)組。
3.5、輸出隨機生成的十個數(shù)字
輸出隨機生成的十個數(shù)字 代碼如下所示
/// <summary>
/// 輸出隨機生成的十個數(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進行編譯,調(diào)試結(jié)果如下所示。
可以正確的輸出隨機生成的數(shù)字,存儲于數(shù)組中的數(shù)據(jù)。
3.6、數(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ù)組的排序方式為從小到大
采用的排序方式為冒泡排序
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ù)字存儲于數(shù)字之中。
按F5進行編譯,調(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
請按任意鍵繼續(xù). . .
可以看做數(shù)字是從小到大排序輸出的。
排序算法符合要求。
四、經(jīng)典算法實例程序 完整代碼
經(jīng)典算法實例程序完整代碼如下所示
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>
/// 隨機生成十個數(shù)字賦值給數(shù)組
/// </summary>
/// <returns></returns>
srand(time(NULL));
for (i = 0; i < 10; i++)
{
myArr[i] = rand() % 100 + 1;
}
/// <summary>
/// 輸出隨機生成的十個數(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ù)組從小到大進行排序
/// </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語言經(jīng)典算法實例:數(shù)組元素排序,要實現(xiàn)的目標如下和要點如下
使用rand()庫函數(shù)隨機生成10個1-100之間的數(shù)字。
聲明數(shù)組的大小為10。
隨機生成的10個數(shù)字賦值給數(shù)組。
給數(shù)組內(nèi)的元素由小到大排序。
排序方式為冒泡排序方式。
原文鏈接:https://blog.csdn.net/m0_47419053/article/details/126688181
相關(guān)推薦
- 2022-06-12 C語言經(jīng)典順序表真題演練講解_C 語言
- 2022-10-02 iOS開發(fā)實現(xiàn)搜索框(UISearchController)_IOS
- 2022-09-22 IO流技術(shù)中的File類
- 2022-11-07 Flink?側(cè)流輸出源碼示例解析_服務(wù)器其它
- 2023-01-17 pytest內(nèi)置fixture使用臨時目錄流程詳解_python
- 2022-04-26 ASP.NET?Core中的Razor頁面使用視圖組件_基礎(chǔ)應(yīng)用
- 2022-07-23 SpringBoot分頁查詢
- 2022-10-01 Qt?timerEvent實現(xiàn)簡單秒表功能_C 語言
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學習環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支