C实现数组中元素的排序

使用C实现数组中元素的排序,使得数组中的元素从小到大排列。只不过在这个过程中出了一点小问题,在C中进行数字交换的时候,必须要使用指针的,不能使用引用。在后面的文章中,我要学习一个在C中的引用和指针的区别。下面看一下我的代码吧。

#include <stdio.h>

void swap(int *a,int *b);
void rest(int lels[],int count);

/**
 * 该实例用于实现对用户输入的数组进行排序
 * 要求的数组中的元素从小到大来咧
 *
 * @brief main
 * @return
 */
int main(void)
{
    /** 用于循环遍历的i **/
    int i = 0;

    /** 用于存储数组中元素的个数 **/
    int num;

    printf("Please enter the number of the array:\n");
    scanf("%d",&num);  //获取用户输入的数组元素的个数

    /** 用于存储用户输入的数组 **/
    int array[num];

    printf("Please enter the element of the array:\n");

    for(i = 0;i < num;i++)
        scanf("%d",&array[i]);

    rest(array,num);  //进行排序

    printf("The array after rest:\n");

    for(i = 0;i < num;i++)
        printf("%d\t",array[i]);

    return 0;
}

/**
 * @brief swap 用于将元素a和元素b交换
 * @param a 要交换的数字a
 * @param b 要交换的数字b
 */
void swap(int *a,int *b){
    int temp = *a;
    *a = *b;
    *b = temp;
}

/**
 * @brief rest 用于对数组进行排序,从小到大排列
 * @param lels  要被排序的数组
 * @param count 被排序的数组元素的个数
 */
void rest(int lels[],int count)
{
    /** 暂时使用冒泡排序 **/
    /** 临时变量i,j **/
    int i,j;
    for(i = 0;i < count-1;i++){
        for(j = i+1; j < count;j++){
            if(lels[i] > lels[j])
                swap(&lels[i],&lels[j]);
        }
    }
}

时间: 2024-12-20 11:59:54

C实现数组中元素的排序的相关文章

数组中元素的排序(常用的冒泡排序、选择排序、快速排序)

1.冒泡排序(以从小到大为例) [分析]:冒泡排序的思想就是,两两进行比较,第一个元素和第二个元素进行比较,如果第一个元素比第二个元素大,则这两个元素交换位置,然后第二个元素和第三个元素进行比较,如果第二个元素比第三个元素大,交换位置,依次类推,知道到最后一个元素.在比较的时候,每进行一轮比较,就可以找到当前这一轮的最大值, 我们可以将每一轮找到的最大值放到最后,知道最终剩下两个值,比较完之后,就可以将当前数列的数据按照从小到大的顺序排列好. 以:a=[  2 ,  6  ,8  ,9  ,1 

VB6之多维数组中元素在内存中的排列情况

1 Private Declare Sub RtlMoveMemory Lib "kernel32" (Destination As Any, Source As Any, ByVal Length As Long) 2 3 4 'code by lichmama from cnblogs.com 5 Private Sub Form_Load() 6 Dim a(2) As Byte 7 Dim b(2, 2) As Byte 8 Dim c(2, 2, 2) As Byte 9 1

数组的创建/查找数组里面的内容/添加数组中元素/使用指定的字符串把数组链接起来/判断数组内是否有指定的数组元素/四种遍历进行输出数组中的元素有哪些

#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { //创建数组 //1.快速创建数组@[] NSArray*[email protected][@"month",@"tue",@" wed",@"fir"]; //2,创建空的数组 NSArray*arr=[[NSArray a

JS实现循环删除数组中元素的方法介绍

这篇文章主要给大家介绍了关于Javascript循环删除数组中元素的几种方法,文中给出了详细的示例代码供大家参考学习,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧. 本文主要跟大家分享了关于Javascript循环删除数组中元素的几种方法,分享出来供大家参考学习,下面来看看详细的介绍: 发现问题 大家在码代码的过程中,经常会遇到在循环中移除指定元素的需求.按照常规的思路,直接一个for循环,然后在循环里面来个if判断,在判断中删除掉指定元素即可.但是实际情况往往不会像预想的那样顺利

黑马基础阶段测试题:定义一个int类型的数组,数组中元素为{5,7,3,9,4}。求出数组中的最小值,并判断最小值是否为偶数,如果是偶数则输出“最小值为偶数”,如果不是偶数则输出“最小值为奇数”。打印如下:

package com.swift; import java.util.Arrays; public class ArrayTest { public static void main(String[] args) { /* * 定义一个int类型的数组,数组中元素为{5,7,3,9,4}. * 求出数组中的最小值,并判断最小值是否为偶数,如果是偶数则输出"最小值为偶数",如果不是偶数则输出"最小值为奇数".打印如下 */ int arr[]= {5,7,3,9,4

根据Bool值挑选数组中元素

根据Bool值挑选数组中元素 觉得有用的话,欢迎一起讨论相互学习~Follow Me 使用Boolean类型的数组挑选一维数组中的值 使用一维Boolean数组选取数组中的特定元素,对应位置为True则选取,为False则不选取 import numpy as np i_=[2] # 挑选第三行数据 pop=np.arange(12).reshape(3,4) print("pop(3,4)\n",pop) bool=np.array([0,0,1,1]).astype("b

一维数组中元素反向[::-1]

[::-1] 数组中元素反向 觉得有用的话,欢迎一起讨论相互学习~Follow Me 一维数组反向[::-1] import numpy as np a = np.arange(8) print ("生成0-19之间的数组",a) # 一维数组反向 a1 = a[::-1] print("将a数组反向",a1) # 生成0-19之间的数组 [0 1 2 3 4 5 6 7] # 将a数组反向 [7 6 5 4 3 2 1 0] 高维数组[::-1]没有反向效果 #

javascript中获取字符串或数组中元素的索引

有些时候,我们需要知道一个字符串中字符的位置,或者一个数组中元素的位置,这是就需要对该变量进行迭代操作. 对于数组,有两个方法indexOf和findIndex() , 需要注意的是,findIndex是数组的方法,不适用于字符串 1 let arr = ['a' ,'b', 'c'] 2 let idx = arr.findIndex((item) => { 3 return item == 'b' 4 }) 5 console.log(arr.indexOf('c')); // 2 6 co

获取数组中元素的最大值、最小值、平均值、总和

1 package com.demo; 2 3 import javax.sound.midi.Soundbank; 4 5 /* 6 * 题目:定义一个int型的一维数组,包含10个元素,分别赋一些随机整数, 7 * 然后求出所有元素的最大值,最小值,和值,平均值,并输出. 8 * 备注:所有随机数都是两位数 9 * 10 * Math.random()可以生成一个double类型随机数,范围是:[0.0, 1.0) 11 * 可以这样生成一个两位数的int类型的随机数:(int)(Math.