使用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實現兩個文件的內容輸出到同一個屏幕