使用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]);
}
}
}
~~~
- 前言
- 实例一:HelloWorld
- scanf函数学习
- 实数比较
- sizeof()保留字获取类型的大小
- 自增/自减学习
- C学习if条件判断和for循环
- C实现的九九乘法表
- C实现一个比较简单的猜数游戏
- 使用C模拟ATM练习switch..case用法
- 记录一个班级的成绩练习一维数组
- C数组实现矩阵的转置
- C二维数组练习
- 利用数组求前n个质数
- C实现万年历
- C实现数组中元素的排序
- C实现任意进制数的转化
- C判断一个正整数n的d进制数是否是回文数
- C使用递归实现前N个元素的和
- 钢材切割问题
- 使用指针比较整型数据的大小
- 指向数组的指针
- 寻找指定元素
- 寻找相同元素的指针
- 整数转换成罗马数字
- 字符替换
- 从键盘读入实数
- C实现字符行排版
- C实现字符排列
- C实例--判断一个字符串是否是回文数
- 通讯录的输入输出
- 扑克牌的结构定义
- 使用“结构”统计学生成绩
- 报数游戏
- 模拟社会关系
- 统计文件中字符个数
- C实现两个文件的内容输出到同一个屏幕