c語言數(shù)組排序調(diào)用函數(shù) 數(shù)組排序問題c語言

C語言:輸入5個數(shù),用調(diào)用函數(shù)的方法,從小到大排序 用簡單點的

#includestdio.h

成都網(wǎng)站制作、網(wǎng)站設計的開發(fā),更需要了解用戶,從用戶角度來建設網(wǎng)站,獲得較好的用戶體驗。創(chuàng)新互聯(lián)公司多年互聯(lián)網(wǎng)經(jīng)驗,見的多,溝通容易、能幫助客戶提出的運營建議。作為成都一家網(wǎng)絡公司,打造的就是網(wǎng)站建設產(chǎn)品直銷的概念。選擇創(chuàng)新互聯(lián)公司,不只是建站,我們把建站作為產(chǎn)品,不斷的更新、完善,讓每位來訪用戶感受到浩方產(chǎn)品的價值服務。

void?sort(float?*a,?int?n)

{

int?i,j,tmp;

for(i=0;?in-1;?i++)

for(j=0;?jn-i-1;?j++)

if(a[j]a[j+1])

{

tmp?=?a[j];

a[j]?=?a[j+1];

a[j+1]?=?tmp;

}

}

void?main()

{

float?a[5];

int?i;

printf("請輸入五個數(shù)(逗號隔開):");

scanf("%f,%f,%f,%f,%f",a[0],a[1],a[2],a[3],a[4]);

sort(a,5);

printf("排序后為:");

for(i=0;?i5;?i++)

printf("%.2f?",a[i]);

printf("\n");

}

或者三個數(shù)的。

void sort(int *a, int *b, int *c)

{

int tmp;

if(*a*b){

tmp = *b;

*b = *a;

*a = tmp;

}

if(*a*c){

tmp = *c;

*c = *a;

*a = tmp;

}

if(*b*c){

tmp = *c;

*c = *b;

*b = tmp;

}

return;

}

擴展資料:

C語言中沒有預置的sort函數(shù)。如果在C語言中,遇到有調(diào)用sort函數(shù),就是自定義的一個函數(shù),功能一般用于排序。

一、可以編寫自己的sort函數(shù)。

如下函數(shù)為將整型數(shù)組從小到大排序。void sort(int *a, int l)//a為數(shù)組地址,l為數(shù)組長度。

{ ?

int i, j; ?

int v; ? ?//排序主體

for(i = 0; i l - 1; i ++) ? ? ?

for(j = i+1; j l; j ++)

?

{ ? ? ? ? ?

if(a[i] a[j])//如前面的比后面的大,則交換。

? ? ?

{

? ? ? ? ?

v = a[i];

? ? ? ? ?

a[i] = a[j];

? ? ? ? ?

a[j] = v;

? ? ?

}

?

}

}

對于這樣的自定義sort函數(shù),可以按照定義的規(guī)范來調(diào)用。

二、C語言有自有的qsort函數(shù)。

功 能: 使用快速排序例程進行排序。頭文件:stdlib.h

原型:

void qsort(void *base,int nelem,int width,int (*fcmp)(const void *,const void *));

參數(shù):

1、待排序數(shù)組首地址。

2、數(shù)組中待排序元素數(shù)量。

3、各元素的占用空間大小4 指向函數(shù)的指針,用于確定排序的順序,這個函數(shù)必須要自己寫比較函數(shù),即使要排序的元素是int,float一類的C語言基礎(chǔ)類型。

C語言中通過函數(shù)調(diào)用對一維數(shù)組進行排序

#include stdio.h

#include stdlib.h

#include time.h

#define MAXlen 100

void select_sort(int *x, int n) { //選擇排序

int i, j, min;

int t;

for (i = 0; i n - 1; i++) { // 要選擇的次數(shù):0~n-2共n-1次

min = i; // 假設當前下標為i的數(shù)最小,比較后再調(diào)整

for (j = i + 1; j n; j++) { //循環(huán)找出最小的數(shù)的下標是哪個

if (*(x + j) *(x + min)) {

min = j; // 如果后面的數(shù)比前面的小,則記下它的下標

}

}

if (min != i) { // 如果min在循環(huán)中改變了,就需要交換數(shù)據(jù)

t = *(x + i);

*(x + i) = *(x + min);

*(x + min) = t;

}

}

}

int main() {

int i;

int iArr[MAXlen];

srand((unsigned int)time(NULL));

printf("\n排序前:\n");

for(i = 0 ; i MAXlen ; i++) {

iArr[i] = (unsigned int)rand() % 1000;

if(i % 10 == 0) printf("%\n");

printf("%5d",iArr[i]);

}

printf("\n");

select_sort(iArr,MAXlen);

printf("\n排序后:\n");

for(i = 0 ; i MAXlen ; i++) {

if(i % 10 == 0) printf("%\n");

printf("%5d",iArr[i]);

}

printf("\n\n");

return 0;

}

C語言編寫一個排序函數(shù)(對一維數(shù)組排序)并在主函數(shù)中調(diào)用

以下是一個使用C語言編寫一維數(shù)組排序函數(shù)并在主函數(shù)中調(diào)用的示例代碼,采用的是從小到大排序的方式,可以根據(jù)需要進行修改:

```c

#include stdio.h

// 排序函數(shù),參數(shù)為待排序數(shù)組和數(shù)組長度

void sort(int arr[], int len) {

int i, j, tmp;

// 冒泡排序

for (i = 0; i len - 1; i++) {

for (j = 0; j len - i - 1; j++) {

if (arr[j] arr[j + 1]) { // 相鄰元素比較,如果前面的大于后面的,則交換位置

tmp = arr[j];

arr[j] = arr[j + 1];

arr[j + 1] = tmp;

}

}

}

}

int main() {

int arr[] = { 3, 1, 5, 7, 2, 4, 6 };

int len = sizeof(arr) / sizeof(int);

int i;

// 輸出排序前的數(shù)組

printf("排序前:

");

for (i = 0; i len; i++) {

printf("%d ", arr[i]);

}

printf("

");

// 調(diào)用排序函數(shù)進行排序

sort(arr, len);

// 輸出排序后的數(shù)組

printf("排序后:

");

for (i = 0; i len; i++) {

printf("%d ", arr[i]);

}

printf("

");

return 0;

}

```

在上面的代碼中,我們定義了一個`sort`函數(shù),實現(xiàn)了一維數(shù)組排序,并接受待排序數(shù)組和數(shù)組長度為參數(shù)。排序的算法采用的是冒泡排序,每次比較相鄰元素的大小并交換它們的位置,直到排序完成。

在主函數(shù)中,我們聲明了一個待排序的一維數(shù)組`arr`,并計算了數(shù)組長度。然后,我們輸出了排序前的數(shù)組,并調(diào)用`sort`函數(shù)進行排序。最后,我們輸出排序后的數(shù)組。

需要注意的是,排序函數(shù)的實現(xiàn)方式可以有多種,根據(jù)實際需求和數(shù)據(jù)類型的不同,選擇合適的排序算法可以提高排序的效率和準確性。在調(diào)用排序函數(shù)時,需要確保輸入的參數(shù)正確和合法,避免出現(xiàn)數(shù)組越界等錯誤。

C語言程序問題 調(diào)用函數(shù)進行數(shù)組排序

void sort(int a[])

這樣不行的,還需要知道數(shù)組的大小

數(shù)組作為形參的時候弱化為指針

int size=sizeof(a)/sizeof(int);

這樣得到的size=1;

void sort(int a[], int n);

然后冒泡就可以了

分享名稱:c語言數(shù)組排序調(diào)用函數(shù) 數(shù)組排序問題c語言
標題路徑:http://muchs.cn/article20/dohedjo.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供響應式網(wǎng)站、小程序開發(fā)、網(wǎng)站維護企業(yè)網(wǎng)站制作、營銷型網(wǎng)站建設服務器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化