C語言 呼叫自定義交換函式,完成浮點數從小到大排列

時間 2021-08-11 18:00:48

1樓:

正如樓上所說,這個方法是很多的。我舉一個例子:

#include

void swap(double *x,double *y)//定義交換函式

main()

;for(i=0;i<=3;i++) //氣泡排序for(j=0;j<=3-i;j++)

if(st[j]>st[j+1])

swap(&st[j],&st[j+1]);

for(i=0;i<5;i++) //輸出printf("%f\t",st[i]);

}這個程式只能給5,3,1,6,2排序,要想給任意的數排序稍微改動一下就行了,請樓主自己完成,不會的話隨時可以問我。

2樓:

我幫你寫了一個,希望能幫到你

#include

void swap(double a[5])//交換函式}}}int main()

swap(a);

for(m=0;m<5;m++)//輸出排序結果printf("\n");

return 0;}

3樓:匿名使用者

排列是很經典的題目 常用的方法有冒泡法 選擇法 他們都是通過陣列儲存 核心思想都很簡單 建議你自己上網搜下演算法 自己搞定

c語言:輸入5個數,用呼叫函式的方法,從小到大排序 用簡單點的

4樓:風翼殘念

#include

void sort(float *a, int n)

int i,j,tmp;

for(i=0; ifor(j=0; jif(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("請輸入五個數(逗號隔開):");

sort(a,5);

printf("排序後為:");

for(i=0; i<5; i++)

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

printf("\n");

或者三個數的。

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

int tmp;

if(*a>*b)

對於這樣的自定義sort函式,可以按照定義的規範來呼叫。

二、c語言有自有的qsort函式。

功 能: 使用快速排序例程進行排序。標頭檔案:stdlib.h

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

引數:1、待排序陣列首地址。

2、陣列中待排序元素數量。

3、各元素的佔用空間大小4 指向函式的指標,用於確定排序的順序,這個函式必須要自己寫比較函式,即使要排序的元素是int,float一類的c語言基礎型別。

5樓:小周愛嘮叨

1、在開頭處定義了兩個指標變數point_1和point_2。但此時他們並未指向任何一個變數,只是提供兩個指標變數,規定他們可以指向整形變數,至於指向哪一個整形變數,要在程式語句中指定。程式第6,7兩行的作用就是使point_1指向a,point_2指向b,此時point_1的值為&a(即a的地址),point_2的值為&b。

2、第10行輸出*point_1和*point_2的值,其中的“*”表示“指向”。*point_1表示“指標變數point_1所指向的變數”,也就是變數a。*point_2表示“指標變數point_2所指向的變數”,也就是變數b。

從執行結果來看他們也就是100和10.

3、程式中有兩處出現*point_1和*point_2,但是兩者含義不同。程式第5行的*point_1和*point_2表示定義兩個指標變數*point_1和*point_2。它們前面的“*”只是表示該變數是指標變數。

程式最後10行中的printf函式中的*point_1和*point_2則表示指標變數point_1和point_2所指向的變數。

6樓:匿名使用者

自定義一個交換兩個數的函式

對5個數進行冒泡法

迴圈執行函式就行了

7樓:系榆

void bubble_sort(int array,int n)}if(1 == flag)

}return;

}呼叫時,n的值為5就可以了,你可以將輸入的資料儲存到長度為5的陣列裡面,然後呼叫這個排序方法,希望可以幫到你,望採納

c語言如何用呼叫函式的方法把5個數字從小到大排序?

8樓:風吹的小羊

1、在開頭bai處定義了兩個du

指標變數point_1和point_2。但此時他zhi們並未指向任何dao一個回變數,只是提供兩答

個指標變數,規定他們可以指向整形變數,至於指向哪一個整形變數,要在程式語句中指定。程式第6,7兩行的作用就是使point_1指向a,point_2指向b,此時point_1的值為&a(即a的地址),point_2的值為&b。

2、第10行輸出*point_1和*point_2的值,其中的“*”表示“指向”。*point_1表示“指標變數point_1所指向的變數”,也就是變數a。*point_2表示“指標變數point_2所指向的變數”,也就是變數b。

從執行結果來看他們也就是100和10.

3、程式中有兩處出現*point_1和*point_2,但是兩者含義不同。程式第5行的*point_1和*point_2表示定義兩個指標變數*point_1和*point_2。它們前面的“*”只是表示該變數是指標變數。

程式最後10行中的printf函式中的*point_1和*point_2則表示指標變數point_1和point_2所指向的變數。

在c語言中自定義函式的寫法是怎樣的

看你的函式功能是幹什麼,函式開頭用不用int看的是你函式最後要返回什麼值,返回的型別是什麼就用什麼,格式如下 函式返回型別 沒有返回就void,返回整型就int,字元就char等等 函式名 函式引數。例如定義一個加法函式,最後返回整型就 int addfunction int a,int b 自定義...

c語言求救二實驗內容編寫自定義子函式實

古神孤鴻 include define n 10 void swap int a,int b,int n int main void void swap int a,int b,int n c語言 指標 編寫一個函式實現n n矩陣轉置。在主函式中用scanf輸入矩陣元素 將陣列名作為函式實參。 庫後...

簡述c語言中使用者自定義函式由哪幾部分組成

定義乙個函式我們需要確定以下內容 1 函式的返回值型別 2 函式的名稱 3 函式的引數 4 函式主體 塊 示例 int defineplus int a,int b a a 1 b b 1 return a b 例如上面 中就定義了乙個返回值為int型別的函式,其函式名為defineplus,一對小...