C語言算法練習之數組元素排序
一、問題描述
求數組的排序
問題的描述
如下幾點所示
- 使用rand()庫函數隨機生成10個1-100之間的數字。
- 聲明數組的大小為10。
- 隨機生成的10個數字賦值給數組。
- 給數組內的元素由小到大排序。
二、算法實例編譯環(huán)境
本文C語言經典算法實例的編譯環(huán)境,使用的是集成開發(fā)環(huán)境:Visual Studio 2019


Visual Studio 2019官網鏈接如下

Visual Studio 2019集成的開發(fā)環(huán)境的特點有
- Visual Studio 2019默認安裝Live Share代碼協(xié)作服務。
- 幫助用戶快速編寫代碼的新歡迎窗口、改進搜索功能、總體性能改進。
- 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))可以保證每一次生成的數字都不同。
通過循環(huán),將隨機生成十個數字賦值給數組。
3.5、輸出隨機生成的十個數字
輸出隨機生成的十個數字 代碼如下所示
/// <summary>
/// 輸出隨機生成的十個數字
/// </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");
輸出 我們向數組中輸入的數據。
按F5進行編譯,調試結果如下所示。

可以正確的輸出隨機生成的數字,存儲于數組中的數據。
3.6、數組從小到大進行排序
數組從小到大進行排序 代碼如下所示
/// <summary>
/// 輸出數組元素排序好的數字
/// </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");數組的排序方式為從小到大
采用的排序方式為冒泡排序
3.7、輸出數組元素排序好的數字
輸出數組元素排序好的數字 代碼如下所示
/// <summary>
/// 輸出數組元素排序好的數字
/// </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");可以輸出排序好的數字。
數字存儲于數字之中。
按F5進行編譯,調試結果如下所示。

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ù). . .
可以看做數字是從小到大排序輸出的。
排序算法符合要求。
四、經典算法實例程序 完整代碼
經典算法實例程序完整代碼如下所示
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 follows\n");
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 follows\n");
for (i = 0; i < 10; i++)
{
printf("%d ", myArr[i]);
}
printf("\n\n");
system("pause");
return 0;
}
五、總結
C語言經典算法實例:數組元素排序,要實現的目標如下和要點如下
使用rand()庫函數隨機生成10個1-100之間的數字。
聲明數組的大小為10。
隨機生成的10個數字賦值給數組。
給數組內的元素由小到大排序。
排序方式為冒泡排序方式。
到此這篇關于C語言算法練習之數組元素排序的文章就介紹到這了,更多相關C語言數組元素排序內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

