日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無(wú)先后,達(dá)者為師

網(wǎng)站首頁(yè) 編程語(yǔ)言 正文

C語(yǔ)言算法練習(xí)之?dāng)?shù)組元素排序_C 語(yǔ)言

更新時(shí)間: 2022-10-30 編程語(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

欄目分類(lèi)
最近更新