C語(yǔ)言算法練習(xí)之?dāng)?shù)組元素排序
一、問(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集成的開(kāi)發(fā)環(huán)境的特點(diǎn)有
- Visual Studio 2019默認(rèn)安裝Live Share代碼協(xié)作服務(wù)。
- 幫助用戶快速編寫(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)的元素由小到大排序。
排序方式為冒泡排序方式。
到此這篇關(guān)于C語(yǔ)言算法練習(xí)之?dāng)?shù)組元素排序的文章就介紹到這了,更多相關(guān)C語(yǔ)言數(shù)組元素排序內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C語(yǔ)言指針如何實(shí)現(xiàn)字符串逆序反轉(zhuǎn)
這篇文章主要介紹了C語(yǔ)言指針如何實(shí)現(xiàn)字符串逆序反轉(zhuǎn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07
關(guān)于STL中vector容器的一些總結(jié)
vector作為STL提供的標(biāo)準(zhǔn)容器之一,是經(jīng)常要使用的,有很重要的地位,并且使用起來(lái)也是灰常方便。vector又被稱為向量,vector可以形象的描述為長(zhǎng)度可以動(dòng)態(tài)改變的數(shù)組,功能和數(shù)組較為相似2013-09-09
詳解C語(yǔ)言實(shí)現(xiàn)推箱子的基本功能(2)
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)推箱子的基本功能的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-02-02
C 語(yǔ)言中實(shí)現(xiàn)環(huán)形緩沖區(qū)
本文主要是介紹 C語(yǔ)言實(shí)現(xiàn)環(huán)形緩沖區(qū),并附有詳細(xì)實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,希望能幫助有需要的小伙伴2016-07-07
C語(yǔ)言中數(shù)組的一些基本知識(shí)小結(jié)
這篇文章主要介紹了C語(yǔ)言中數(shù)組的一些基本知識(shí)小結(jié),其中重點(diǎn)是對(duì)于數(shù)組的內(nèi)存分配相關(guān)方面的知識(shí)整理,需要的朋友可以參考下2016-04-04
C++調(diào)用C#的DLL實(shí)現(xiàn)方法
這篇文章主要介紹了C++調(diào)用C#的DLL實(shí)現(xiàn)方法,很有實(shí)用價(jià)值,需要的朋友可以參考下2014-07-07

